Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
前面的两个函数没有用到In Reply To:这个程序怎么错了? Posted by:mengzhu929 at 2007-04-23 18:48:31 > #include <iostream> > #include <string> > #include <algorithm> > #include <map> > > using namespace std; > int n; int m; > int get_hash_value(char* p) > { > int a = 0; > for(int k = 0; k < m; k++) > { > switch(p[k]) > { > case 'A': a = a+2*(20-k); break; > case 'C': a = a+3*(20-k); break; > case 'G': a = a+4*(20-k); break; > case 'T': a = a+5*(20-k); break; > } > //a += (p[k]-'A')*(k+1); > } > return a; > } > > int ELFhash(char *key) > { > unsigned long h=0; > while(*key) > { > h=(h<<4)+*key++; > unsigned long g=h&0Xf0000000L; > if(g) > h^=g>>24; > h&=~g; > } > return h%54117; > } > > > map<string, int> string_count; > int copy_count[20001]; > > int main(int argc, char* argv[]) > { > while(cin >> n >> m) > { > memset(copy_count, 0, sizeof(copy_count)); > if(n == 0) break; > for(int i = 0; i < n; i++) > { > char str[20]; > scanf("%s", str); > // int value = get_hash_value(str); > map<string, int>::iterator iter; > if((iter = string_count.find(str)) != string_count.end()) > { > iter->second++; > } > else > { > string_count.insert(make_pair(str, 1)); > } > } > for(map<string, int>::iterator iter = string_count.begin(); iter != string_count.end(); iter++) > { > copy_count[iter->second]++; > } > for(int k = 1; k <= n; k++) > { > printf("%d\n", copy_count[k]); > } > } > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator