2557. 【NOIP2011模拟9.9】单词分类 (Standard IO)
2016-08-16 14:12
543 查看
Description
Oliver为了学号英语决定苦背单词,但很快他发现要直接记住杂乱无章的单词非常困难,他决定对单词进行分类。两个单词可以分为一类当且仅当组成这两个单词的各个字母的数量均相等。
例如“AABAC”,它和“CBAAA”就可以归为一类,而和“AAABB”就不是一类。
现在Oliver有N个单词,所有单词均由大写字母组成,每个单词的长度不超过100.你要告诉Oliver这些单词会被分成几类。
Input
输入文件的第一行为单词个数N,以下N行每行为一个单词。Output
输出文件仅包含一个数,表示这N个单词分成的类数。Sample Input
3AABAC
CBAAA
AAABB
Sample Output
2【数据范围】
对于70%的数据满足N<=100。对于100%的数据满足N<=10000。
题解
两个快排,第一个排序每个字符串的顺序,第二个排序所有的字符串,这样同类的字符串聚在了一起。
代码
var n:longint; s:array[1..100000] of string; a:string; procedure qsort(l,r:longint); var i,j:longint; mid:string; p:char; begin i:=l;j:=r; mid:=a[(l+r) div 2]; repeat while a[i]<mid do inc(i); while a[j]>mid do dec(j); if i=j then begin inc(i);dec(j);end else if i<j then begin p:=a[i];a[i]:=a[j];a[j]:=p; inc(i);dec(j); end; until i>j; if l<j then qsort(l,j); if i<r then qsort(i,r); end; procedure qsort1(l,r:longint); var i,j:longint; mid,p:string; begin i:=l;j:=r; mid:=s[(l+r) div 2]; repeat while s[i]<mid do inc(i); while s[j]>mid do dec(j); if i<=j then begin p:=s[i];s[i]:=s[j];s[j]:=p; inc(i);dec(j); end; until i>j; if l<j then qsort1(l,j); if i<r then qsort1(i,r); end; var i,j,ans:longint; begin readln(n); for i:=1 to n do begin readln(a); qsort(1,length(a)); s[i]:=a; end; qsort1(1,n); j:=1;ans:=1; for i:=2 to n do if s[i]<>s[i-1] then inc(ans); writeln(ans); end.
相关文章推荐
- 2557. 【NOIP2011模拟9.9】单词分类 (StandardIO)
- jzoj 2557. 【NOIP2011模拟9.9】单词分类
- 2558. 【NOIP2011模拟9.9】过河问题 (Standard IO)
- 2559. 【NOIP2011模拟9.9】最短路 (Standard IO)
- 【NOIP2011模拟9.9】单词分类
- 2555. 【NOIP2011模拟9.7】雾雨魔理沙 (Standard IO)
- 【NOIP2011模拟9.1】方格取数 (Standard IO)
- JZOJ8.11(C组)【NOIP2011模拟9.1】方格取数 (Standard IO)
- 2556. 【NOIP2011模拟9.7】伊吹萃香 (Standard IO)
- 【NOIP2011模拟9.1】统计 (Standard IO)
- 【NOIP2011模拟9.3】作弊的发牌者 (Standard IO)
- 2569. 【NOIP2011模拟9.17】旅行 (Standard IO)
- 【NOIP2011模拟9.1】直角三角形 (Standard IO)
- 【NOIP2011模拟9.3】跳舞 (Standard IO)
- 2570. 【NOIP2011模拟9.17】数字生成游戏 (Standard IO)
- 2548. 【NOIP2011模拟9.4】最大正方形 (Standard IO)
- 【NOIP2014模拟9.9】逆光 (Standard IO)
- 2553. 【NOIP2011模拟9.7】射命丸文 (Standard IO)
- 【NOIP2011模拟9.3】旅行 (Standard IO)
- 2549. 【NOIP2011模拟9.4】家庭作业 (Standard IO)