我第一遍提交的时候还考虑是否会出现大小写不同的同类树。
我想着先全部转换为小写,然后把首字母大写还原。
但是题目测试点显然没有这些东西,而且我似乎还写错了一些内容,导致只能过第一个测试点。后来我想到这个题目集主要是熟悉算法,很多题目都是直接的模板题,所以把想太多的内容删掉了,代码也就通过了。

#include<cctype>
#include<cstdio>
#include<map>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
	int n;
	string  str,tmp;
	map<string,int> mp;
	mp.clear();
	cin>>n;
	getchar();
	for(int i=0;i<n;i++){
		getline(cin, str);
		//transform(str.begin(),str.end(),str.begin(),::tolower);
		mp[str]++;
	}
	map<string,int>::iterator it;
	for(it=mp.begin();it!=mp.end();it++){
		tmp=it->first;
		printf("%s ",tmp.c_str());
		int num=it->second;
		printf("%.4f%%\n",num*1.0/n*100);
	}
	return 0;
}