宝藏
来源:互联网 发布:java实现通用日志记录 编辑:程序博客网 时间:2024/04/28 22:24
G
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 333 Solved: 71
SubmitStatusWeb Board
Description
晴天也来寻宝啦,有一个m层的宝塔,只能从第一层开始一层一层的往上走,每层都有一个门,你需要用钥匙来打开门才能继续走,现在晴天有n把钥匙,编号为0-n-1,然后他要开始寻宝了。没有特殊技能怎么好意思出来寻宝呢,他现在有两个天赋技能,他知道第i层的门可以用编号为a和b的钥匙打开(可能a等于b呦),然后他还可以在进入宝塔前把门的顺序任意调换一次,也就是说比如可以把m层原来的1 2 3 ..m,换为 m ...3 2 1.晴天想知道他最多能拿到多少层的宝物。
Input
第一行一个整数t表示有多少组测试实例
每组数据第一行为两个整数n,m分别表示有多少个钥匙,有多少层。
接下来m行,每行两个数字x,y,第i行表示第i层的门可以用标号x或y的钥匙打开。
(n,m<=1000)
Output
输出一个整数表示最多可以上多少层。
Sample Input
1
3 4
0 1
0 1
0 1
1 2
Sample Output
3
HINT
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 333 Solved: 71
SubmitStatusWeb Board
Description
晴天也来寻宝啦,有一个m层的宝塔,只能从第一层开始一层一层的往上走,每层都有一个门,你需要用钥匙来打开门才能继续走,现在晴天有n把钥匙,编号为0-n-1,然后他要开始寻宝了。没有特殊技能怎么好意思出来寻宝呢,他现在有两个天赋技能,他知道第i层的门可以用编号为a和b的钥匙打开(可能a等于b呦),然后他还可以在进入宝塔前把门的顺序任意调换一次,也就是说比如可以把m层原来的1 2 3 ..m,换为 m ...3 2 1.晴天想知道他最多能拿到多少层的宝物。
Input
第一行一个整数t表示有多少组测试实例
每组数据第一行为两个整数n,m分别表示有多少个钥匙,有多少层。
接下来m行,每行两个数字x,y,第i行表示第i层的门可以用标号x或y的钥匙打开。
(n,m<=1000)
Output
输出一个整数表示最多可以上多少层。
Sample Input
1
3 4
0 1
0 1
0 1
1 2
Sample Output
3
HINT
在样例中,在进入宝塔前,将门的顺序换为4 1 2 3.然后前三层分别使用2 0 1三把钥匙拿到前三层的宝物
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int link[1010][1010];int biao[1010];//标记第i层门是否被打开 int vis[1010];int n,m;bool dfs(int x)//x为钥匙编号 ; {for(int i=0;i<m;i++)//i为楼层; {if(biao[i]==0&&link[i][x]==1)//第i层还没有被访问并且钥匙x能打开第i层的门; {biao[i]=1;//访问第i层的门; if(vis[i]==-1||dfs(vis[i]))//如果第i层门还没被打开或有别的钥匙能打开 {vis[i]=x;return true;}}}return false;}int main(){int ans;int t;scanf("%d",&t);while(t--){ans=0;memset(vis,-1,sizeof(vis));//编号从0开始嘛,傻了吧唧的初始化个0000000 memset(link,0,sizeof(link));scanf("%d%d",&n,&m);for(int i=0;i<m;i++){int key1,key2;scanf("%d%d",&key1,&key2);link[i][key1]=1;link[i][key2]=1;}for(int i=0;i<n;i++){memset(biao,0,sizeof(biao));if(dfs(i))ans++;}printf("%d\n",ans);}return 0;}//二分图EEEEE
0 0
- 宝藏
- 宝藏
- 宝藏
- 宝藏
- 宝藏
- 寻找宝藏
- 收集宝藏
- 探寻宝藏
- NOIP2017D2T2 宝藏
- noip2017宝藏
- 自己就是宝藏
- 艾伦的宝藏
- 世界十大宝藏
- 发现宝藏啦~
- 挖宝藏啦!!
- 挖宝藏 treasures
- 亟待开发的宝藏
- windows核心宝藏
- python unicode字节串转成中文问题
- Android动画总结系列(4)——属性动画集成
- UVA 11090 Going in Cycle!! SPFA判断负圈
- 杭电-1179 魔法师与魔法棒(二分匹配模板)
- ZZULIOJ 1918 G
- 宝藏
- zzulioj-1918-G【匈牙利算法】【二分匹配】
- Mysql 5.7 主从复制的多线程复制配置方式以及读写分离中间件 MaxScale
- c++ 关于map的遍历 删除
- TeeChart的安装 delphi7
- 多重背包详解
- Merge k Sorted Lists解题报告
- 机器学习中的范数规则化之(一)L0、L1与L2范数
- 原型链(三):prototype与__proto__的差异