#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; void fre(){freopen("c://test//input.in","r",stdin);freopen("c://test//output.out","w",stdout);} #define MS(x,y) memset(x,y,sizeof(x)) #define MC(x,y) memcpy(x,y,sizeof(x)) #define MP(x,y) make_pair(x,y) #define ls o<<1 #define rs o<<1|1 typedef long long LL; typedef unsigned long long UL; typedef unsigned int UI; template inline void gmax(T1 &a,T2 b){if(b>a)a=b;} template inline void gmin(T1 &a,T2 b){if(bbb.b[i])return 1; if(b[i]middle>lower的顺序排序。 多个前缀关键字,位于最后的关键字作为第一关键字,依次类推。 如果发生关键字数量差别,空关键字被认定为middle。 如果最后依然重复,则按照人名字典序。 【类型】 模拟 排序 多关键字排序 【分析】 这题只是一个关键字有点多的排序而已。 最多会有256/6个关键字。我们直接把所有的关键字提取出来,位置越后,级别越高。 upper=1 middle=0(初始也为0) lower=-1 然后排个序,这道题就做完啦! 【时间复杂度&&优化】 O(关键字数*nlogn) 【数据】 5 mom: upper upper lower middle class dad: middle middle lower middle class queenelizabeth: upper upper class chair: lower lower class unclebob: middle lower middle class */