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

A Za, A Za, Fighting...

堅信:勤能補拙

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

思路:
這題將排序發揮到了極致啊呵呵,排序來排序去就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 閱讀(637) 評論(0)  編輯 收藏 引用 所屬分類: A_排序

導航

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

統計

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美日韩视频在线观看一区二区三区 | 欧美精品乱码久久久久久按摩| 欧美日韩中文字幕精品| 激情五月婷婷综合| 久久久久久午夜| 亚洲中无吗在线| 亚洲一级黄色av| 亚洲男人的天堂在线观看| 欧美精品在线看| 在线免费观看日本一区| 久久麻豆一区二区| 欧美一区二区三区四区在线| 国产精品美女一区二区| 亚洲一区二区在线| 一区二区高清视频| 国产精品日韩欧美一区二区| 亚洲自啪免费| 亚洲专区一区二区三区| 国产精品主播| 久久aⅴ国产紧身牛仔裤| 午夜国产精品视频免费体验区| 国产精品久久久久久av福利软件| 一道本一区二区| 日韩一级大片在线| 国产精品视频你懂的| 久久九九全国免费精品观看| 亚洲精品欧美| 久久久久国产精品午夜一区| 欧美激情a∨在线视频播放| 99成人在线| 欧美精品一卡二卡| 亚洲图片欧美日产| 亚洲男人的天堂在线aⅴ视频| 国产欧美一区二区三区沐欲| 久热精品视频在线免费观看| 欧美成人午夜剧场免费观看| 99热这里只有成人精品国产| 一区二区三区四区精品| 国产欧美精品一区二区色综合 | 亚洲深夜福利在线| 亚洲欧美制服中文字幕| 在线观看精品一区| 一本色道久久综合狠狠躁篇的优点| 国产精品视频久久久| 老司机午夜免费精品视频| 欧美精品一区二区视频 | 性欧美精品高清| 久久综合色8888| 午夜精品一区二区三区在线| 久久另类ts人妖一区二区| 在线综合亚洲| 久久精品视频在线播放| 在线一区二区三区做爰视频网站| 欧美一区二区三区的| 亚洲午夜一级| 亚洲国产精品久久91精品| 欧美日韩亚洲国产一区| 久久久91精品国产| 欧美啪啪一区| 欧美a级片网站| 国产精品久久久久av免费| 亚洲国产精品一区二区www在线| 国产精品亚洲片夜色在线| 亚洲国产欧美不卡在线观看 | 久久精品伊人| 欧美日本三区| 免费影视亚洲| 国产日产亚洲精品| 99精品热6080yy久久 | 欧美成人精品在线播放| 国产欧美va欧美va香蕉在| 亚洲美女视频在线免费观看| 在线视频观看日韩| 欧美在线视频网站| 欧美一区二区三区免费看| 欧美性色aⅴ视频一区日韩精品| 亚洲高清视频中文字幕| 在线观看视频一区二区欧美日韩| 亚洲一区二区精品在线| 一区二区三区视频在线看 | 亚洲午夜小视频| 欧美日产一区二区三区在线观看| 欧美国产第一页| 亚洲国产黄色片| 欧美性片在线观看| 亚洲精品乱码久久久久久| 欧美成人午夜77777| 欧美激情一二三区| 在线观看亚洲专区| 久久在线视频在线| 欧美va天堂| 亚洲第一福利在线观看| 久久九九久精品国产免费直播| 久久狠狠婷婷| 好看的日韩视频| 久久久不卡网国产精品一区| 久久综合色播五月| 亚洲国产精品成人| 久久亚洲私人国产精品va| 免费看亚洲片| 亚洲人成在线免费观看| 欧美福利电影网| 99精品久久久| 欧美一级视频一区二区| 国产综合精品| 免费成年人欧美视频| 亚洲三级免费观看| 中日韩美女免费视频网址在线观看 | 久久伊人免费视频| 18成人免费观看视频| 欧美激情网友自拍| 在线中文字幕日韩| 久久精品中文字幕一区| 亚洲电影免费在线观看| 欧美精品高清视频| 亚洲欧美日韩精品一区二区| 美女诱惑黄网站一区| 99精品视频免费在线观看| 国产精品美女视频网站| 久久人人97超碰国产公开结果| 最近中文字幕日韩精品| 亚洲午夜免费视频| 国产亚洲欧洲一区高清在线观看| 久久久久久成人| 91久久久国产精品| 欧美在线观看一区| 最新热久久免费视频| 国产精品初高中精品久久| 久久成人综合视频| 亚洲另类自拍| 久久综合电影| 亚洲综合三区| 亚洲国产小视频| 国产精品尤物福利片在线观看| 久久综合网hezyo| 亚洲在线视频网站| 亚洲国产黄色片| 久久精品国产精品亚洲综合| 亚洲三级国产| 国产欧美日韩亚州综合| 欧美精品一区二| 久久岛国电影| aa国产精品| 亚洲福利免费| 久久久精品一区二区三区| 在线视频日韩| 亚洲欧洲一二三| 极品少妇一区二区三区精品视频| 欧美日韩中文另类| 欧美承认网站| 裸体丰满少妇做受久久99精品| 亚洲欧美日韩国产成人精品影院| 性感少妇一区| 欧美三级日本三级少妇99| 欧美在线亚洲一区| 亚洲视屏在线播放| 亚洲国产第一| 欧美怡红院视频| 在线一区二区日韩| 亚洲精品国产精品乱码不99| 精品电影一区| 免费精品视频| 欧美激情精品久久久久久免费印度| 亚洲免费一区二区| 宅男精品视频| 夜夜嗨av一区二区三区免费区| 欧美岛国激情| 老司机一区二区三区| 久久久精品久久久久| 欧美一区二区成人| 午夜在线观看免费一区| 亚洲一级二级在线| 亚洲一卡久久| 亚洲综合色噜噜狠狠| 亚洲制服少妇| 欧美亚洲一级片| 性做久久久久久免费观看欧美 | 久久人人爽爽爽人久久久| 久久国产精品免费一区| 性欧美激情精品| 欧美在线免费| 久久久久久黄| 免费不卡亚洲欧美| 欧美激情一区二区三区不卡| 欧美护士18xxxxhd| 亚洲人体影院| 99在线精品免费视频九九视| 这里只有精品视频在线| 亚洲制服欧美中文字幕中文字幕| 午夜精品久久久久久久白皮肤| 篠田优中文在线播放第一区| 久久久99国产精品免费| 嫩模写真一区二区三区三州| 欧美精品性视频| 国产精品欧美一区喷水| 国产亚洲欧美日韩精品| 亚洲国产精品女人久久久| 夜夜精品视频一区二区| 亚洲伊人观看| 久久久久国内|