uva-10887-枚举

Posted shuiyonglewodezzzzz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uva-10887-枚举相关的知识,希望对你有一定的参考价值。

题意:集合S1和S2,把S2中的元素拼接到S1的后面去,生成新的元素,问有多少个不重复的元素

直接map.注意,不能用cin读取字符串,题目没有保证字符串中间没有空格

#include "pch.h"
#include <string>
#include<iostream>
#include<map>
#include<memory.h>
#include<vector>


namespace cc
{
	using std::cout;
	using std::endl;
	using std::cin;
	using std::map;
	using std::vector;
	using std::string;

	int n;
	int t;
	int r, c;
	int total;
	constexpr int N = 1501;
	string set1[N];
	string set2[N];
	map<string, int>allMaps;
	void cal()
	{
		for (int i = 0;i < r;i++)
		{
			for (int j = 0;j < c;j++)
			{
				string str = set1[i] + set2[j];
				if (allMaps[str] == 0)
				{
					++total;
					allMaps[str] = 1;
				}
			}
		}
	}
	void read()
	{
		total = 0;
		allMaps.clear();
		cin >> r >> c;
		getchar();
		for (int i = 0;i < r;i++)
			getline(cin,set1[i]);
		for (int i = 0;i < c;i++)
			getline(cin, set2[i]);

	}

	void solve()
	{
		t = 1;
		cin >> n;
		while (n--)
		{
			read();
			cal();
			cout << "Case " << t << ": " << total << endl;
			t++;
		}
	}

};


int main()
{

#ifndef ONLINE_JUDGE
	freopen("d://1.text", "r", stdin);
#endif // !ONLINE_JUDGE
	cc::solve();

	return 0;
}

  

以上是关于uva-10887-枚举的主要内容,如果未能解决你的问题,请参考以下文章

带有红宝石集合/可枚举的酷技巧和富有表现力的片段[关闭]

Java中枚举的写法和用法

PAT1049-----枚举法,找规律题,注意降低时间复杂度

如何在C ++中将枚举导入不同的命名空间?

C/C++ 中enum枚举量的介绍:介绍enum枚举量在C/C中的作用和使用方法

JAVA枚举小结