Codevs1506
来源:互联网 发布:手机屏幕养兔子软件 编辑:程序博客网 时间:2024/06/09 14:05
判断一个点是否在环上,暴力深搜,知道重复为止
#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fod(i,a,b) for(int i=a;i>=b;i--)using namespace std;const int N=1e4+10;int n,m,len=0,last[N],vis[N],jud[N];struct Edge{int to,next;Edge(int to=0,int next=0):to(to),next(next){}}e[N<<1],E[N<<1];void add_edge(int u,int v){e[++len]=Edge(v,last[u]);last[u]=len;}void dfs(int x,int org){ if(jud[org])return ; vis[x]=1; if(x==org) {jud[org]=1;return ;} for(int i=last[x];i;i=e[i].next) { if(!vis[e[i].to])dfs(e[i].to,org); }}int main(){ scanf("%d%d",&n,&m); for(int a,b,i=1;i<=m;i++) { scanf("%d%d",&a,&b); add_edge(a,b); } for(int i=1;i<=n;i++) { memset(vis,0,sizeof(vis)); for(int j=last[i];j;j=e[j].next) dfs(e[j].to,i); } for(int i=1;i<=n;i++) jud[i]==1?printf("T\n"):printf("F\n"); return 0;}
阅读全文
0 0
- Codevs1506
- [codevs1506] 传话
- codevs1506传话
- codevs1506传话(tarjan)
- 【基础练习】codevs1506 传话题解
- codevs1506 传话(拓扑排序)
- 【基础练习】【传递闭包】codevs1506 传话题解
- git总结
- HDU5818-Joint Stacks
- C++中sprintf和string的使用问题
- 二分查找的几种不同的实现
- 第二周项目一C/C++语言中函数传递的三种方式之方法三引用作形参
- Codevs1506
- listview左滑删除和置顶(仿QQ)
- W3Cschool编程实战:JavaScript
- Lua学习笔记之lua基本语法DAY1
- adnroid组件化开发实战
- java web(三)jsp
- 研究生规划_笔记
- C到C++基础
- AJAX原理