(ICPC)亚洲区域赛上海 M.Gitignore(模拟,map)

Posted issue是fw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(ICPC)亚洲区域赛上海 M.Gitignore(模拟,map)相关的知识,希望对你有一定的参考价值。

LINK

先对 m m m个不能删除的路径做处理

一个路径不能删除,说明它的所有前缀路径不能删除

(由于最后一个是文件,不需要管,所以只把’\\'作为分隔符即可)

我们把所有前缀路径丢进 m a p map map

然后处理 n n n个需要删除的路径

也就是所有前缀路径至少删除一个,实在不行就直接删除文件

我们贪心删除范围大的即可

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e3+10;
map<string,int>mp;
string a[maxn],b[maxn];
int n,m,t;
int main()
{
	cin >> t;
	while( t-- )
	{
		cin >> n >> m;
		for(int i=1;i<=n;i++)	cin >> a[i];
		for(int i=1;i<=m;i++)	cin >> b[i];
		for(int i=1;i<=m;i++)
		{
			string s = "";
			for(int j=0;j<b[i].length();j++)
			{
				s += b[i][j];
				if( b[i][j]=='/' )	mp[s] = 1;
			}
		}
		int ans = 0;
		for(int i=1;i<=n;i++)
		{
			string s = "";
			int flag = 0;
			for(int j=0;j<a[i].length();j++)
			{
				s += a[i][j];
				if( a[i][j]=='/' )	
				{
					if( mp[s]==2 )	{ flag = 1; break; }//已经被删掉了 
					if( mp[s]==1 )	continue;//不能被删掉 
					mp[s] = 2,ans++; flag = 1;
					break;
				}
			}
			if( !flag )	ans++;			
		}
		cout << ans << endl;
		mp.clear();
	}
}

以上是关于(ICPC)亚洲区域赛上海 M.Gitignore(模拟,map)的主要内容,如果未能解决你的问题,请参考以下文章

Digit sum (第 44 届 ACM/ICPC 亚洲区域赛(上海)网络赛)进制预处理水题

第 46 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海),签到题6题

第 46 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海),签到题6题

第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海),签到题5题

第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海),签到题5题

45届ICPC亚洲区域赛(上海)C.Sum of Log(卡常数位dp)