首页 > 其他 > 详细

2020 ICPC上海站 M

时间:2021-01-04 23:17:56      阅读:68      评论:0      收藏:0      [点我收藏+]

2020 ICPC上海站 M

题目链接:https://ac.nowcoder.com/acm/contest/9925/M

题目大意

给你一些文件夹和文件,文件夹没有空的,文件夹里面可能有文件和文件夹,有些文件是可以忽略的,有些文件是不能被忽略的,我们要找到最少的能被忽略的文件的个数。

思路

大模拟 做了好久 这种题还是给坤子哥做好了=.=

Code

#include<string>
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<vector>
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
#define LL long long
#define MOD 100000007
#define PI 3.1415926535898
#define INF 0x3f3f3f3f
#define MAXN 200050
#define register long long
const double EPS = 1e-8;
LL read()
{
	LL w = 1, x = 0;
	char ch = 0;
	while (ch < ‘0‘ || ch>‘9‘)
	{
		if (ch == ‘-‘)
			w = -1;
		ch = getchar();
	}
	while (ch >= ‘0‘ && ch <= ‘9‘)
	{
		x = x * 10 + ch - ‘0‘;
		ch = getchar();
	}
	return w * x;
}
map<string, int >mp;
int t, m, n;
string s[105], ss;
int main()
{
	t = read();
	while (t--)
	{
		n = read();
		m = read();
		mp.clear();
		ss = "";
		for (register int i = 1; i <= n + m; i++)
			cin >> s[i];
		for (register int i = n + 1; i <= n + m; i++)
		{
			ss = "";
			for (register int j = 0; j <= s[i].length(); j++)
			{
				ss += s[i][j];
				if (s[i][j] == ‘/‘)
				{
					mp[ss] = 1;
					//continue;
				}

			}
		}
		int ans = n;
		ss = "";
		for (register int i = 1; i <= n; i++)
		{
			ss = "";
			for (register int j = 0; j < s[i].length(); j++)
			{

				ss += s[i][j];
				if (s[i][j] == ‘/‘)
				{
					if (mp[ss] == 0)
					{
						mp[ss] = 2;
					}
					else
					{
						if (mp[ss] == 1)
						{
							continue;
						}
						else
						{
							ans--;
							break;
						}
					}
				}
			}
		}
		cout << ans << endl;
		for (register int i = 1; i <= n + m; i++)
		{
			s[i] = "";
		}
	}
	return 0;
}

2020 ICPC上海站 M

原文:https://www.cnblogs.com/lumingran/p/14232091.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!