hdu 4324 Triangle LOVE 拓扑排序
2017-08-21 12:03
337 查看
#include<stdio.h> #include<stack> #include<string.h> #include<algorithm> using namespace std; int mp[2000 + 5][2000 + 5], in[2000 + 5],u[2000+5]; int main() { int _, i, j, k, n, cas = 0,t; char s[2000 + 5]; bool flag; scanf("%d", &_); while (_--) { memset(mp, 0, sizeof(mp)); memset(in,0,sizeof(in)); memset(u,0,sizeof(u)); scanf("%d", &n); flag=0; for (i = 0; i < n; i++) { scanf("%s", s); for (j = 0; j < n; j++) { if (s[j] == '1') { mp[i][j] = 1; in[j]++; } } } stack<int>s; while(!s.empty()) s.pop(); for(i=0;i<n;i++) { if(in[i]==0) s.push(i); } while(!s.empty()) { t=s.top(); u[t]=1; s.pop(); for(i=0;i<n;i++) { if(mp[t][i]) { in[i]--; if(in[i]==0) s.push(i); } } } for (i = 0; i < n; i++) { if(u[i]) continue; for (k = i+1; k < n; k++) { if(u[k]) continue; if (!mp[i][k]||mp[k][i]) continue; for (j = 0; j < n; j++) { if(u[j]) continue; if (mp[k][j] && mp[j][i]&&!mp[j][k]&&!mp[i][j]) { flag = 1; break; } } if (flag) break; } if (flag) break; } if (!flag) printf("Case #%d: No\n", ++cas); else printf("Case #%d: Yes\n", ++cas); } return 0; }
相关文章推荐
- HDU 4324 CODE[VS] 2066 triangle love(拓扑排序)
- HDU 4324 Triangle LOVE(拓扑排序)
- HDU 4324 Triangle LOVE(拓扑排序)
- [HDU 4324] Triangle LOVE (拓扑排序,DFS)
- 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(拓扑排序)