CF Gym 100187J Deck Shuffling (dfs判连通)
2024-08-23 08:24:36
题意:给你一堆牌,和一些洗牌机,可以改变牌的顺序,问你能不能通过洗牌机把数字为x的牌洗到第一个位置。
题解:反向建边,dfs判断连通性
#include<cstdio>
#include<vector>
using namespace std;
const int maxn = +;
int a[maxn];
vector<int> son[maxn];
int x;
bool vis[maxn];
bool dfs(int u)
{
if(a[u] == x) return true;
for(int i = ; i < son[u].size(); i++){
int v = son[u][i];
if(!vis[v]){
vis[v] = ;
if(dfs(v)) return true;
}
}
return false;
} int main()
{
//freopen("in.txt","r",stdin);
int n;
scanf("%d",&n);
for(int i = ; i < n; i++){
scanf("%d",a+i);
}
int k;
scanf("%d",&k);
for(int i = ; i < k; i++){
for(int j = ; j < n; j++){
int t;
scanf("%d",&t);
if(t-!=j)
son[j].push_back(t-);
}
}
scanf("%d",&x);
printf("%s",dfs()?"YES":"NO");
return ;
}
最新文章
- Centos7无法上网
- 云计算之路-阿里云上:借助IIS Log Parser Studio分析“黑色30秒”问题
- VC++6.0编译器标记的那些内存值
- UIView 周围出现黑线的解决方法
- How to use HaploView
- nopCommerce架构分析系列(二)数据Cache
- python 性能优化
- iOS 动态加入button
- OC-Protocol实现业务代理
- Bootstrap入门(二十九)JS插件6:弹出框
- jdbc 增删改查以及遇见的 数据库报错Can&#39;t get hostname for your address如何解决
- mpvue——引入echarts图表
- zabbix3.2监控mongodb
- 分解数据表(将一个datatable按数据量分隔成多个table)
- SpringBoot使用WebJars
- Oracle数据库修改LISTENER的监听端口
- iOS动画1 — UIView动画
- 大数据(十一) - Mahout
- LeetCode 12 Integer to Roman (整数转罗马数字)
- 【转】Navigation Drawer(导航抽屉)