CF Gym 100187J Deck Shuffling (dfs判连通)
2015-07-19 09:53
288 查看
题意:给你一堆牌,和一些洗牌机,可以改变牌的顺序,问你能不能通过洗牌机把数字为x的牌洗到第一个位置。
题解:反向建边,dfs判断连通性
题解:反向建边,dfs判断连通性
#include<cstdio> #include<vector> using namespace std; const int maxn = 200000+4; 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 = 0; i < son[u].size(); i++){ int v = son[u][i]; if(!vis[v]){ vis[v] = 1; if(dfs(v)) return true; } } return false; } int main() { //freopen("in.txt","r",stdin); int n; scanf("%d",&n); for(int i = 0; i < n; i++){ scanf("%d",a+i); } int k; scanf("%d",&k); for(int i = 0; i < k; i++){ for(int j = 0; j < n; j++){ int t; scanf("%d",&t); if(t-1!=j) son[j].push_back(t-1); } } scanf("%d",&x); printf("%s",dfs(0)?"YES":"NO"); return 0; }
相关文章推荐
- 最新原创:Power8伴随云计算横空出世
- [转]jQuery中$.fn的用法介绍
- ios学习笔记 --(c语言基础4)
- Selenium2(webdriver)入门之TestNG的安装与简单使用
- powerDesigner类图生成JAVA代码
- ZendStudio导入一个已有的网站
- 统计1到n出现的1的个数(不能用字符串)
- pip安装包
- zoj 1188 DNA Sorting(STL)
- leetcode 81 :Search in Rotated Sorted Array II
- Android Binder- 一次完整的通信过程
- Shell编程中括号判断中赋值语句和判断语句
- PowerDesigner使用教程
- ajax笔记
- Gitlab 上Iisues 使用以及代码管理
- VS编程常见的编译和链接错误
- UIView相对坐标转换
- Scala:条件表达式的好处
- 0033 C与OC差异
- string和stringBuffer的区别