HDU 4324 Triangle LOVE 【拓扑排序】
来源:互联网 发布:java怎么输入 编辑:程序博客网 时间:2024/05/23 16:57
Triangle LOVE
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 3494 Accepted Submission(s): 1356
Problem Description
Recently, scientists find that there is love between any of two people. For example, between A and B, if A don’t love B, then B must love A, vice versa. And there is no possibility that two people love each other, what a crazy world!
Now, scientists want to know whether or not there is a “Triangle Love” among N people. “Triangle Love” means that among any three people (A,B and C) , A loves B, B loves C and C loves A.
Your problem is writing a program to read the relationship among N people firstly, and return whether or not there is a “Triangle Love”.
Now, scientists want to know whether or not there is a “Triangle Love” among N people. “Triangle Love” means that among any three people (A,B and C) , A loves B, B loves C and C loves A.
Your problem is writing a program to read the relationship among N people firstly, and return whether or not there is a “Triangle Love”.
Input
The first line contains a single integer t (1 <= t <= 15), the number of test cases.
For each case, the first line contains one integer N (0 < N <= 2000).
In the next N lines contain the adjacency matrix A of the relationship (without spaces). Ai,j = 1 means i-th people loves j-th people, otherwise Ai,j = 0.
It is guaranteed that the given relationship is a tournament, that is, Ai,i= 0, Ai,j ≠ Aj,i(1<=i, j<=n,i≠j).
For each case, the first line contains one integer N (0 < N <= 2000).
In the next N lines contain the adjacency matrix A of the relationship (without spaces). Ai,j = 1 means i-th people loves j-th people, otherwise Ai,j = 0.
It is guaranteed that the given relationship is a tournament, that is, Ai,i= 0, Ai,j ≠ Aj,i(1<=i, j<=n,i≠j).
Output
For each case, output the case number as shown and then print “Yes”, if there is a “Triangle Love” among these N people, otherwise print “No”.
Take the sample output for more details.
Take the sample output for more details.
Sample Input
25001001000001001111011100050111100000010000110001110
Sample Output
Case #1: YesCase #2: No
嗯,题目大意就是说,个人认为判断是否能成环吧,若能,则topsort查找到最后一定存在入度不为0 的点,若不能,则一定不存在入度不为0的点
#include <iostream>#include<cstdio>#include<cstring>#include<queue>#define maxn 2020using namespace std;int cnt,flag,head[maxn],in[maxn];queue<int>q;struct node{ int a,b,next;};node edge[maxn*maxn];void add(int a,int b){ edge[cnt].a=a; edge[cnt].b=b; edge[cnt].next=head[a]; head[a]=cnt; cnt++;}void top_sort(){ int u,v; while(!q.empty()) { u=q.front(); q.pop(); for(int i=head[u];i!=-1;i=edge[i].next) { v=edge[i].b; in[v]--; if(in[v]==0) { in[v]=-1; q.push(v); } } }}int main(){ int t,n,num=0; char s[maxn]; scanf("%d",&t); while(t--) { num++; cnt=flag=0; memset(in,0,sizeof(in)); memset(head,-1,sizeof(head)); while(!q.empty()) q.pop(); scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%s",s); for(int j=0;j<n;++j) { if(s[j]=='1') { add(i,j); in[j]++; } } } for(int i=0;i<n;++i) { if(in[i]==0) { in[i]=-1; q.push(i); } top_sort(); } for(int i=0;i<n;++i) { if(in[i]!=-1) { flag=1; break; } } printf("Case #%d: ",num); if(flag) printf("Yes\n"); else printf("No\n"); } return 0;}
0 0
- HDU 4324题Triangle LOVE(拓扑排序)
- HDU 4324 Triangle LOVE (拓扑排序)
- HDU 4324 Triangle LOVE(拓扑排序)
- HDU 4324:Triangle LOVE( 拓扑排序 )
- HDU 4324 Triangle LOVE 拓扑排序
- hdu 4324 Triangle LOVE 拓扑排序
- HDU 4324 Triangle LOVE 【拓扑排序】
- HDU 4324:Triangle LOVE【拓扑排序】
- hdu 4324 Triangle LOVE(拓扑排序)
- HDU 4324 Triangle LOVE(拓扑排序)
- HDU 4324 Triangle LOVE 拓扑排序
- HDU 4324 Triangle LOVE (拓扑排序)
- 【HDU 4324 Triangle LOVE】 + 拓扑排序
- HDU 4324 Triangle LOVE(拓扑排序)
- hdu 4324 Triangle LOVE(拓扑排序)
- HDU 4324 Triangle LOVE(拓扑排序)
- HDU 4324-- Triangle LOVE【拓扑排序 && 邻接表实现】
- HDU - 4324 Triangle LOVE(拓扑排序 + 判断环路)
- EyeTutorial_updated眼睛检测Demo(完整版)
- SEAndroid安全机制框架分析
- ARP病毒导致网络不稳定
- java面试题总结
- android android:noHistory="true" 的作用
- HDU 4324 Triangle LOVE 【拓扑排序】
- HDU 5389 DP
- POJ2342 Anniversary party 树形dp入门题
- Struts2学习笔记(1)struts的配置以及流程
- PHP,如何判断mysql语句是否有返回值、是否有内容
- 告别烧脑,金融保险企业邮件应该这样卖产品!
- HDU 2896 病毒侵袭(AC自动机)
- Android OpenAtlas初识
- hdoj1016,Prime Ring Problem