http://acm.nyist.net/JudgeOnline/problem.php?pid=285
寻找克隆人
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
3
-
描述
-
美国的一个小镇近日被外星人袭击,一部分居民被其带走并克隆,现在,科学家提取了镇上一些人的DNA,请找出其中具有相同被克隆个数的DNA个数,例如下面的9个序列
AAAAAA
ACACAC
GTTTTG
ACACAC
GTTTTG
ACACAC
ACACAC
TCCCCC
TCCCCC
其中TCCCCC,GTTTTG分别具有两个相同个体,ACACAC有四个,AAAAAA为一个,则按照行数对应输出其个数第一行1,第二行2,第四行1,其他行输出0,共9行
-
输入
-
序列数不超过20000,每序列不超过20个字符
输入以0 0结束
输出
- 如题中描述输出即可 样例输入
-
9 6 AAAAAA ACACAC GTTTTG ACACAC GTTTTG ACACAC ACACAC TCCCCC TCCCCC 0 0
样例输出
-
1 2 0 1 0 0 0 0 0
-
序列数不超过20000,每序列不超过20个字符
知道了题目的意思,就可以用map解了。
#include<iostream>
#include<map>
using namespace std;
int main() {
int n, s;
while (cin >> n >> s && (n || s)) {
int a[20001] = {0};
map<string, int> m;
string ch;
for (int i = 0; i < n; i++) {
cin >> ch;
m[ch]++;
}
map<string, int>::iterator q = m.begin(), p;
for (p = m.begin(); p != m.end(); p++) {
a[p -> second - 1]++;
}
for (int i = 0; i < n; i++) {
cout << a[i] << endl;
}
}
}