(ICPC)亚洲区域赛上海 M.Gitignore(模拟,map)
Posted issue是fw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(ICPC)亚洲区域赛上海 M.Gitignore(模拟,map)相关的知识,希望对你有一定的参考价值。
先对 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题