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

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>
            在线亚洲美日韩| 99re视频这里只有精品| 欧美第一黄网免费网站| 永久555www成人免费| 久久精彩视频| 亚洲国产网站| 亚洲精品小视频在线观看| 在线亚洲免费| 欧美91大片| 伊人狠狠色j香婷婷综合| 亚洲天堂免费在线观看视频| 亚洲电影第1页| 久久人人爽人人爽| 香蕉亚洲视频| 国产精品最新自拍| 欧美一区二区三区播放老司机 | 亚洲午夜伦理| 亚洲精品久久久久| 欧美日韩国产不卡| 一本色道久久加勒比88综合| 91久久久久久久久久久久久| 欧美精选一区| 亚洲一级在线观看| 亚洲自拍偷拍网址| 国产一区二区高清不卡| 久久久久中文| 免费人成精品欧美精品| 日韩亚洲欧美精品| 在线一区视频| 在线视频精品| 亚洲成色777777在线观看影院| 在线精品福利| 欧美暴力喷水在线| 欧美日韩中文| 国产精品羞羞答答| 欧美一区二区三区日韩| 亚洲一区二区在线视频| 国产麻豆精品theporn| 久久久精品一区二区三区| 韩国一区电影| 欧美国产免费| 欧美日韩亚洲一区三区| 香蕉久久夜色精品| 久久av红桃一区二区小说| 伊人精品在线| 中日韩在线视频| 在线精品视频免费观看| 夜夜精品视频一区二区| 国产精品私人影院| 欧美不卡视频一区发布| 国产精品高清免费在线观看| 久久婷婷人人澡人人喊人人爽| 欧美成人精品在线播放| 午夜精品美女自拍福到在线 | 欧美专区亚洲专区| 裸体歌舞表演一区二区| 亚洲一区中文| 免播放器亚洲| 久久成人18免费观看| 免费欧美在线视频| 欧美国产日韩免费| 亚洲精品一区二区三区婷婷月| 99国产一区| 国产字幕视频一区二区| 亚洲精品在线观看视频| 国内揄拍国内精品久久| 亚洲另类黄色| 亚洲日本欧美| 欧美一区二区三区视频在线| 99视频国产精品免费观看| 久久精品视频在线看| 亚洲无线观看| 欧美国产日韩a欧美在线观看| 久久精品最新地址| 国产伦精品一区二区三区免费迷| 亚洲精选中文字幕| 亚洲日本欧美天堂| 久久夜色精品国产亚洲aⅴ| 欧美日韩一区在线视频| 欧美国产一区二区| 激情六月综合| 久久精品成人| 久久精品成人| 国产日韩欧美综合精品| 亚洲一区国产精品| 亚洲欧美国内爽妇网| 欧美激情一区二区三级高清视频| 你懂的网址国产 欧美| 欧美日韩视频专区在线播放 | 六十路精品视频| 国产精品久久久久久户外露出| 欧美aaaaaaaa牛牛影院| 黑人巨大精品欧美黑白配亚洲| 亚洲欧美日韩一区二区三区在线| 亚洲午夜激情免费视频| 欧美日韩亚洲高清| 9人人澡人人爽人人精品| 一本色道久久88亚洲综合88| 欧美精品在线视频观看| 亚洲国产精品久久久久婷婷老年| 激情综合网址| 午夜一区不卡| 国产精品一区二区在线| 性欧美暴力猛交69hd| 久久国产精品99久久久久久老狼| 国产真实久久| 理论片一区二区在线| 亚洲国产另类久久精品| 一区二区三区欧美在线观看| 欧美体内she精视频在线观看| 亚洲丝袜av一区| 欧美尤物一区| 好看的av在线不卡观看| 蜜桃av一区| 99这里只有精品| 久久国产精品一区二区三区| 黑人巨大精品欧美一区二区 | 伊人久久婷婷| 欧美高清影院| 亚洲一区二区网站| 久久综合网hezyo| 亚洲精品日产精品乱码不卡| 欧美日韩另类丝袜其他| 亚洲欧美日韩国产中文在线| 久久久噜噜噜久久久| 亚洲欧洲一级| 国产精品实拍| 美腿丝袜亚洲色图| 中文在线不卡| 免费久久99精品国产自在现线| 亚洲最新在线| 国产一区亚洲一区| 欧美日韩a区| 久久激情综合| 亚洲巨乳在线| 久久一区亚洲| 亚洲一区二区三区四区五区午夜 | 久久久久九九九九| 亚洲毛片在线观看| 国产欧美日韩在线视频| 欧美大片在线观看一区| 午夜视频一区二区| 亚洲黄色片网站| 欧美视频在线不卡| 免费国产一区二区| 午夜视频在线观看一区二区| 亚洲卡通欧美制服中文| 欧美国产乱视频| 久久精品亚洲国产奇米99| 一本色道88久久加勒比精品| 亚洲国产黄色| 国产美女扒开尿口久久久| 欧美激情精品久久久久久黑人| 国产欧美大片| 欧美激情一区二区三区在线视频观看 | 国产综合视频在线观看| 欧美日韩a区| 乱中年女人伦av一区二区| 欧美一级午夜免费电影| 亚洲丝袜av一区| 日韩亚洲欧美高清| 亚洲第一中文字幕在线观看| 久久久久久电影| 午夜视频精品| 亚洲午夜未删减在线观看| 亚洲狼人综合| 亚洲国产精品久久久久秋霞影院| 国产一区二区三区免费在线观看 | 亚洲精品裸体| 久久综合久久综合九色| 欧美一区亚洲| 亚洲欧美精品| 亚洲一区二区3| 中日韩美女免费视频网址在线观看 | 亚洲国产精品久久久久秋霞影院| 亚洲精品一区二区三区av| 另类成人小视频在线| 久久久国产精品亚洲一区| 宅男66日本亚洲欧美视频| 一个色综合导航| 99视频国产精品免费观看| 日韩午夜中文字幕| 亚洲美女视频网| 夜夜狂射影院欧美极品| 亚洲老板91色精品久久| 亚洲精品国产欧美| 日韩一二三在线视频播| 99精品国产在热久久下载| 99视频+国产日韩欧美| 宅男噜噜噜66一区二区| 亚洲欧美亚洲| 久久久91精品国产一区二区精品| 久久久久国产精品一区| 欧美freesex交免费视频| 亚洲国产精彩中文乱码av在线播放| 欧美高清在线一区二区| 亚洲精品网站在线播放gif| 亚洲视频在线观看网站| 久久精品成人| 欧美日本精品在线|