hdoj 4324 Triangle Love
来源:互联网 发布:仙桃广电网络客服电话 编辑:程序博客网 时间:2024/05/16 18:36
考察点: 拓扑排序 &&判断一张图成环
题目大意:每一组数据都以 (n*n)矩阵的方式给出,初始化为0.
填充(i,j)为1,即为i喜欢j,要求判断关系网中是否存在三角恋(即Triangle Love)
题目解析: 将给出的矩阵模型化为n个人之间一一对应的关系,并且这些关系明显会构成一张图,而判断一张图是否成环,所以使用拓扑排序即可。
判断是否成环:
如果一旦操作的次数 p 大于给出的人数 n ,就可以判断给出的图中存在环,输出Yes.
否则输出No
AC代码:
#include <stdio.h>#include <string.h>using namespace std;char map[2050][2050];int vis[2050];int main(){ int t,n; while(scanf("%d",&t)!=EOF){ for(int k=1;k<=t;k++){ scanf("%d",&n); getchar(); memset(vis,0,sizeof(vis)); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ map[i][j]=getchar(); if(map[i][j]=='1') // 将i 与 j 的关系放入图中 vis[j]++; // vis 数组辅助记录关系的总数 p } getchar(); } int p,count=0; for(int i=1;i<=n;i++){ p=1; while(vis[p]!=0) p++; // 记录下 此时关系的总数p if(p>n){ // 如果成环 ,将count 赋值1,并跳出循环 count=1; break; } else{ vis[p]--; for(int j=1;j<=n;j++){ if(map[p][j]=='1') vis[j]--; } } } if(count==1) printf("Case #%d: Yes\n",k); //如果存在三角恋,输出Yes else printf("Case #%d: No\n",k); // 不存在,输出 No } } return 0;}
0 0
- HDOJ--4324--Triangle LOVE
- hdoj 4324 Triangle LOVE
- hdoj 4324 Triangle Love
- hdoj 4324 Triangle LOVE 【拓扑】
- hdoj.4324 Triangle LOVE【拓扑排序】 20141201
- HDOJ 4324 Triangle LOVE(拓扑排序)
- HDOJ 4324 Triangle LOVE(拓扑排序)
- HDOJ-4324-Triangle LOVE(拓扑排序)
- HDOJ 4324 Triangle LOVE (拓扑排序)
- HDOJ 4324 Triangle LOVE (拓扑排序)
- hdoj 4324 Triangle LOVE【拓扑排序】
- hdoj 4324 Triangle LOVE (拓扑排序)
- HDOJ-----4324Triangle LOVE---拓扑排序
- HDOJ 题目4324 Triangle LOVE(拓扑排序)
- hdoj 4324 (Triangle LOVE )拓扑排序判断成环
- HDOJ 4324 Triangle LOVE (三角恋,待解决)
- HDU - 4324 Triangle LOVE
- hdu 4324 - Triangle LOVE
- Android LayoutInflater的到View后丢失LayoutParam信息的问题
- 从Log4j迁移到LogBack的理由
- LeetCode(41)First Missing Positive
- VMware Workstation下VMnet1等虚拟网卡与主机网卡之间的关系
- hdu5412
- hdoj 4324 Triangle Love
- 【组合数学】【prufer数列】【HNOI 2004】【bzoj 1211】树的计数
- CSS 选择器及各样式引用方式
- OrCAD DSN文件无故消失解决办法
- Android IPC 进程间通信实现理解
- 【使用JSOUP实现网络爬虫】从元素抽取属性,文本和HTML
- Oracle Database 12cRelease 安装
- SQL计算百分比
- Android 解决HTTP请求中文乱码