青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

A Za, A Za, Fighting...

堅(jiān)信:勤能補(bǔ)拙

PKU 2408 Anagram Groups (排序)

Anagram Groups
Time Limit: 1000MSMemory Limit: 65536K
Total Submissions: 2318Accepted: 649

Description

World-renowned Prof. A. N. Agram's current research deals with large anagram groups. He has just found a new application for his theory on the distribution of characters in English language texts. Given such a text, you are to find the largest anagram groups. 

A text is a sequence of words. A word w is an anagram of a word v if and only if there is some permutation p of character positions that takes w to v. Then, w and v are in the same anagram group. The size of an anagram group is the number of words in that group. Find the 5 largest anagram groups.

Input

The input contains words composed of lowercase alphabetic characters, separated by whitespace(or new line). It is terminated by EOF. You can assume there will be no more than 30000 words.

Output

Output the 5 largest anagram groups. If there are less than 5 groups, output them all. Sort the groups by decreasing size. Break ties lexicographically by the lexicographical smallest element. For each group output, print its size and its member words. Sort the member words lexicographically and print equal words only once.

Sample Input

undisplayed
trace
tea
singleton
eta
eat
displayed
crate
cater
carte
caret
beta
beat
bate
ate
abet

Sample Output

Group of size 5: caret carte cater crate trace .
Group of size 4: abet bate beat beta .
Group of size 4: ate eat eta tea .
Group of size 1: displayed .
Group of size 1: singleton .

Source

思路:
這題將排序發(fā)揮到了極致啊呵呵,排序來(lái)排序去就AC了

代碼:
 1 /* 47MS */
 2 #include<stdio.h>
 3 #include<stdlib.h>
 4 #include<string.h>
 5 #define MAX_NUM 30001
 6 #define MAX_LEN 36
 7 #define MAX_OUT 5
 8 struct Word {
 9     char word[MAX_LEN];
10     char word_cmp[MAX_LEN];
11 } words[MAX_NUM];
12 
13 struct Summary {
14     struct Word *first;
15     int count;
16 } smmry[MAX_NUM];
17 
18 int total, total_category;
19 
20 int
21 cmp_char(const void *arg1, const void *arg2)
22 {
23     return (*(char *)arg1) - (*(char *)arg2);
24 }
25 
26 int
27 cmp_words(const void *arg1, const void *arg2)
28 {
29     int ret = strcmp(((struct Word *)arg1)->word_cmp, ((struct Word *)arg2)->word_cmp);
30     if(ret == 0)
31         ret = strcmp(((struct Word *)arg1)->word, ((struct Word *)arg2)->word);
32     return ret;
33 }
34 
35 int
36 cmp_category(const void *arg1, const void *arg2)
37 {
38     int ret = ((struct Summary *)arg2)->count - ((struct Summary *)arg1)->count;
39     if(ret == 0)
40         ret = strcmp(((struct Summary *)arg1)->first->word, ((struct Summary *)arg2)->first->word);
41     return ret;
42 }
43 
44 int
45 main(int argc, char **argv)
46 {
47     int i, j, num, len;
48     total = total_category = 0;
49     while(scanf("%s", words[total].word) != EOF) {
50         len = strlen(words[total].word);
51         strcpy(words[total].word_cmp, words[total].word);
52         qsort(words[total].word_cmp, len, sizeof(char), cmp_char); 
53         ++total;
54     }
55     qsort(words, total, sizeof(struct Word), cmp_words);
56 
57     num = 1;
58     for(i=1; i<total; i++) {
59         if(strcmp(words[i].word_cmp, words[i-1].word_cmp) == 0)
60             ++num;
61         else {
62             smmry[total_category].first = words+i-num;
63             smmry[total_category].count = num;
64             ++total_category;
65             num = 1;
66         }
67     }
68     smmry[total_category].first = words+i-num;
69     smmry[total_category++].count = num;
70     qsort(smmry, total_category, sizeof(struct Summary), cmp_category);
71 
72     total_category = total_category < MAX_OUT ? total_category : MAX_OUT;
73     for(i=0; i<total_category; i++) {
74         printf("Group of size %d: %s ", smmry[i].count, smmry[i].first->word);
75         for(j=1; j<smmry[i].count; j++)
76             if(strcmp((smmry[i].first+j)->word, (smmry[i].first+j-1)->word) != 0)
77                 printf("%s ", (smmry[i].first+j)->word);
78         printf(".\n");
79     }
80 }

posted on 2010-11-05 15:38 simplyzhao 閱讀(630) 評(píng)論(0)  編輯 收藏 引用 所屬分類: A_排序

導(dǎo)航

<2011年7月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

統(tǒng)計(jì)

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            免费欧美高清视频| 99国产精品久久久久老师| 久久精品人人做人人爽| 亚洲免费在线视频| 午夜精品久久久久影视| 久久本道综合色狠狠五月| 欧美在线综合| 久久综合国产精品台湾中文娱乐网| 久久成年人视频| 久久亚洲欧洲| 欧美理论大片| 国产欧美日韩综合一区在线观看| 国产亚洲欧洲一区高清在线观看 | 欧美成人中文字幕在线| 蜜臀a∨国产成人精品| 欧美精品免费视频| 国产精品免费久久久久久| 激情五月综合色婷婷一区二区| 91久久夜色精品国产九色| 亚洲网站在线| 久久亚洲综合| 亚洲免费观看| 久久本道综合色狠狠五月| 欧美精品福利视频| 国产日韩欧美一区二区| 亚洲精品视频在线| 久久国产精品网站| 亚洲激情精品| 亚洲最新视频在线| 久久精品中文字幕免费mv| 欧美日韩国产电影| 影音先锋亚洲精品| 新狼窝色av性久久久久久| 亚洲高清毛片| 欧美有码视频| 国产精品久久精品日日| 亚洲人成7777| 久久一二三四| 亚洲一级网站| 欧美日韩精品免费观看视频| 狠狠入ady亚洲精品| 亚洲免费一在线| 亚洲国产日韩欧美在线动漫| 午夜精品久久久久影视 | 久久综合五月| 国产精品99久久久久久白浆小说| 久久久亚洲国产美女国产盗摄| 欧美亚州韩日在线看免费版国语版| 亚洲美女毛片| 91久久精品一区二区别| 欧美一级专区| 国产精品一区二区在线观看| 在线视频日韩| 91久久精品日日躁夜夜躁欧美| 久久久久久黄| 伊人久久大香线蕉综合热线| 久久国产福利| 午夜精品久久久久久久99热浪潮| 国产精品国产馆在线真实露脸 | 亚洲免费综合| 日韩视频一区| 欧美日韩亚洲高清| 一区二区日韩| 亚洲免费不卡| 国产精品毛片a∨一区二区三区| 亚洲午夜电影网| 中国亚洲黄色| 国产欧美一级| 久久影院午夜论| 久久美女艺术照精彩视频福利播放| 韩国免费一区| 欧美不卡三区| 欧美激情一区二区久久久| 99视频热这里只有精品免费| 亚洲理论在线| 国产农村妇女毛片精品久久麻豆 | 欧美一区成人| 合欧美一区二区三区| 免费看成人av| 欧美精品在线免费| 亚洲一区二区三区高清不卡| 亚洲影院高清在线| 国模吧视频一区| 亚洲福利免费| 国产精品久久久999| 久久视频精品在线| 欧美大片一区| 亚洲欧美日韩国产中文| 久久成人综合视频| 亚洲乱码国产乱码精品精可以看| 一本色道久久| 亚洲成人自拍视频| 夜夜嗨av一区二区三区网站四季av| 国产精品综合久久久| 欧美成人影音| 国产精品日本精品| 欧美电影电视剧在线观看| 欧美日韩国产精品自在自线| 久久九九电影| 欧美日韩精品一区二区在线播放| 久久av资源网| 欧美另类女人| 美女精品视频一区| 国产精品v一区二区三区| 久久综合给合久久狠狠狠97色69| 欧美日韩国产精品专区| 久久日韩粉嫩一区二区三区| 久久久亚洲精品一区二区三区 | 亚洲日韩视频| 国产日韩欧美在线视频观看| 91久久精品一区二区别| 国内视频一区| 亚洲性图久久| 一本色道久久综合亚洲精品婷婷| 性欧美video另类hd性玩具| 99国产精品久久久久久久| 久久另类ts人妖一区二区| 亚洲特级毛片| 欧美激情综合亚洲一二区 | 亚洲一区二区三区在线| 亚洲人成人一区二区三区| 欧美自拍丝袜亚洲| 欧美一区二区三区视频免费| 欧美精品麻豆| 亚洲激情国产| 亚洲精品老司机| 久久久久看片| 麻豆国产精品777777在线| 国产午夜精品一区二区三区视频| 夜夜嗨av一区二区三区网页| 一区二区日韩精品| 欧美另类高清视频在线| 亚洲人成网站在线播| 亚洲国产欧美日韩| 久久亚洲国产精品一区二区 | 最新69国产成人精品视频免费| 欧美一区二区视频97| 欧美伊人精品成人久久综合97| 欧美视频在线一区二区三区| 99精品国产99久久久久久福利| 亚洲最新视频在线| 欧美日韩不卡| 一区二区三区高清不卡| 亚洲一区二区精品在线| 欧美日韩国产色视频| 亚洲狼人综合| 午夜免费久久久久| 国产日韩欧美另类| 久久精品国产清自在天天线| 麻豆精品一区二区综合av| 亚洲观看高清完整版在线观看| 久久伊人精品天天| 欧美激情一区二区在线 | 欧美激情片在线观看| 亚洲日韩欧美视频一区| 亚洲中字在线| 国产亚洲欧美aaaa| 久久蜜臀精品av| 亚洲三级免费电影| 亚洲综合激情| 国内自拍一区| 欧美激情一区二区三区在线视频| 一本色道久久综合精品竹菊| 在线视频日本亚洲性| 亚洲福利视频专区| 美日韩免费视频| 亚洲激情黄色| 亚洲欧美另类在线| 激情欧美国产欧美| 欧美精品一区二| 亚洲综合精品| 欧美成人一区二区三区在线观看 | 欧美成人午夜77777| 亚洲精品视频免费在线观看| 国产精品国产三级国产普通话三级| 亚洲欧美日韩中文视频| 欧美成人国产| 香蕉亚洲视频| 亚洲毛片av在线| 国产视频精品va久久久久久| 欧美成人激情视频免费观看| 亚洲影院一区| 亚洲欧洲精品成人久久奇米网 | 美国三级日本三级久久99| 亚洲精品在线免费观看视频| 久久av红桃一区二区小说| 日韩视频在线观看国产| 国产精品香蕉在线观看| 老司机午夜精品视频在线观看| 宅男噜噜噜66国产日韩在线观看| 美女福利精品视频| 欧美在线视频全部完| 91久久一区二区| 亚洲在线成人| 亚洲破处大片| 久久综合色天天久久综合图片| 亚洲在线视频观看| 日韩一区二区精品葵司在线| 国产一区自拍视频| 国产精品麻豆成人av电影艾秋|