一道关于竞赛图的题目
来源:互联网 发布:一人能开几个淘宝店 编辑:程序博客网 时间:2024/06/01 08:38
呃。没啥说的。。上面都有
#include<cmath>#include<ctime>#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>#include<algorithm>#include<iomanip>#include<vector>#include<string>#include<bitset>#include<queue>#include<set>#include<map>using namespace std;inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch<='9'&&ch>='0'){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}return x*f;}void print(int x){if(x<0)putchar('-'),x=-x;if(x>=10)print(x/10);putchar(x%10+'0');}const int N=2050;int last[N],ecnt;struct EDGE{int to,nt;}e[N*N];inline void add(int u,int v){e[++ecnt]=(EDGE){v,last[u]};last[u]=ecnt;}int book[N];bool flag;void dfs(int u){if(flag)return ;book[u]=2;for(int i=last[u];i;i=e[i].nt){if(!book[e[i].to])dfs(e[i].to);else if(book[e[i].to]==2){flag=1;return ;}}book[u]=1;}char s[N];int U[N*N],V[N*N];int main(){int T=read();register int i,j,cnt;while(T--){int n=read();cnt=0;for(i=1;i<=n;++i){scanf("%s",s+1);for(j=1;j<=n;++j)if(s[j]=='P')U[++cnt]=i,V[cnt]=j,add(i,j);else if(s[j]=='Q')U[++cnt]=i,V[cnt]=j,add(j,i);}flag=0;for(i=1;i<=n;++i)if(!book[i])dfs(i);if(!flag){memset(last,0,sizeof(last));ecnt=0;memset(book,0,sizeof(book));for(i=1;i<=cnt;++i)add(U[i],V[i]);for(i=1;i<=n;++i)if(!book[i])dfs(i);}flag?puts("N"):puts("T");if(T){memset(last,0,sizeof(last));ecnt=0;memset(book,0,sizeof(book));}}}/*14----Q-Q-P--PPP--N*/
阅读全文
0 0
- 一道关于竞赛图的题目
- 关于继承的一道题目
- 一道关于排序的题目
- 关于fork的一道题目
- 一道关于继承的题目
- 笔试的一道关于测试的题目
- 关于byte的一道有趣的题目
- 一道关于时间复杂度的数据结构题目
- 一道面试题目,关于this的理解
- 关于函数声明表达式的一道题目
- 一道关于运用Hashtable的题目
- 一道关于实例化顺序的题目
- 关于腾讯面试的一道题目
- 关于Notify() wait()的一道面试题目
- 关于指针加减的一道题目
- 关于金山的一道面试题目
- 关于金山的一道面试题目
- 关于中国象棋的一道微软面试题目
- Gogs 的 Window 安装
- 机器学习之性能分析
- JavaNIO学习之FileChannel
- Spring基础部分(ioc,aop,事物)
- C++之全局函数与成员函数的转换
- 一道关于竞赛图的题目
- netty in action.pdf 英文原版 免费下载
- Python3 装饰器
- UDP切包发送。避免发送内容大于MTU
- 安装RabbitMQ及使用方法
- win7中cookie存放的位置以及如何查看
- java使用pd4ml将html转换成pdf
- 《C++ 多态篇 imooc》笔记
- Thumbnailator使用简介