PTA 1039

うわー、この質問は本当にピット、もともと私はそれだけで無実のマップ<文字列、セット>だと思っている
最後の点は残業OOO
、突然垣間見る意味の完全なトピックを見つけ、そして4桁の数字を固定し、トップ3文字の後に番号がありますか?なぜこれほど明確に、この文字はまだ26進であることをああ、いや、定義されましたか?
怖がって、それを前に変更します。
コードは以下の通りです

#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e6;
vector < int > query [MAXN];//查询 
int num [MAXN];  // 人数 
int turn ( string s) //转为26进制数 
{
	int k = 0;
	for (int i = 0; i < 4; i++)
	{
		if(i == 3) k = k * 26 + s[i] - '0';
		else k = k*26 + s[i] - 'A';
	}
	return k;
}
int main()
{
	int n,m;
	string name;
	scanf("%d%d",&n,&m);
	for (int i = 0; i < m; i++)
	{
		int room,ren;
		string s;
		scanf("%d%d",&room,&ren);
		for ( int j = 0; j < ren; j++ )
		{
			cin >> s;
			int h = turn(s);
			query[h].push_back(room);
			num[h]++;
		}
	}
	for (int i = 0; i < n; i++)
	{
		cin >> name;
		int h = turn(name);
		cout << name << " " << num[h] ;
			sort(query[h].begin(),query[h].end());
			for (int j = 0 ; j < num[h]; j++)
			 printf(" %d",query[h][j]);
		cout << endl;	
	}
	return 0;
}
公開された55元の記事 ウォンの賞賛1 ビュー2634

おすすめ

転載: blog.csdn.net/qq_37548017/article/details/105108008
おすすめ