Gitignore(第 45 届ICPC区域赛上海站)

该篇博客探讨了在处理多个目录时如何利用Gitignore有效地忽略和保留文件夹。文章介绍了思路,即首先标记不可忽略的目录,然后检查可忽略目录并更新标记。在这一过程中,如果某个目录部分文件不能被忽略,则整个目录也不能被忽略。通过这种方法,最终确定了最少需要的文件夹或文件数量。代码示例展示了具体的实现过程。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

题意

文件同步(合并)

给你n个可以被忽略的目录,类似于 a/b/c/d 这样的文件夹或者model这样的文件,为gitignore,m个不能被忽略的这样的目录。如果一个文件夹里面不是所有的文件都能被忽略的话就不能忽略这个文件夹,否则可以直接忽略这个文件夹。

求最后至少需要多少个文件夹或文件才可以表示所有的文件夹或文件

思路

记录最初的个数ans=n

先对m个不可以被忽略的目录进行标记mp[]=1

在n个可以被忽略的目录中查找可以被忽略的有多少

如果mp[] = 1 ,在n个中查找的时候直接continue

如果mp[] = 0,就标记mp[]=2

如果mp[] = 2,就标记ans–(Because mp[]=2保留一个即可)

注意

在m个不可忽略的目录中的标记是标记某一个/前面的所有

例如:

data/test

标记的是mp[data]=1,mp[datatest]=1

代码

#include<stdio.h>
#include<string.h>
#include<map>
#include<algorithm>
using namespace std;
char a[1010][1010],b[1010][1010],c[1010],c1[1010
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值