hdu 4324 Triangle LOVE

本题链接:点击打开链接

本题大意:

题意分析(转载):此题可以一遍拓扑排序判环求解 即只需要找到一个环,就必定存在三元环 证明如下: 假设存在一个n元环,因为a->b有边,b->a必定没边,反之也成立所以假设有环上三个相邻的点a-> b-> c,那么如果c->a间有边,就已经形成了一个三元环,如果c->a没边,那么a->c肯定有边,这样就形成了一个n-1元环。。。。所以只需证明n大于3时一定有三元环即可,显然成立。

具体请参见代码:

#include<stdio.h>#include<string.h>using namespace std;char map[2010][2010];//存放两节点的关系1:i love j int degree[2010];//存放节点入度 void toposort(int m){int flag=0;for(int i=1;i<=m;i++)//对每个点进行查找 {int j=0;while(degree[j])//找入度为0的点j++;if(j==m)//表明未找到,说明存在环{flag=1;break;}else{degree[j]=-1;//若找到,将入度标为-1for(int k=0;k<m;k++)//把此点引起的点的入度自减一次{if(map[j][k])degree[k]–;}}}if(flag)//存在环,表明存在三角恋printf("Yes\n");elseprintf("No\n");}int main(){int n,m,t=0;scanf("%d",&n);while(n–){memset(map,0,sizeof(map));memset(degree,0,sizeof(degree));scanf("%d",&m);for(int i=0;i<m;i++){scanf("%s", map[i]);for(int j=0;j<m;j++){if(map[i][j]=='1')//若i love j 把j入度自加一次{degree[j]++;}}}printf("Case #%d: ",++t);toposort(m);}return 0;}

版权声明:本文为博主原创文章,未经博主允许不得转载。

,天下爱情,大抵如斯。

hdu 4324 Triangle LOVE

相关文章:

  • 【算法】直接插入排序C语言实现
  • 嵌入式 FAAC1.28 在海思HI3518C/HI3518A平台linux中的编译优化
  • Android 动画animation 深入分析
  • Mybatis极其(最)简(好)单(用)的一个分页插件
  • Ext JS Kitchen Sink [Learning by doing](2)ArrayGrid
  • 你感兴趣的文章:

    标签云:

    亚洲高清电影在线, 免费高清电影, 八戒影院夜间, 八戒电影最新大片, 出轨在线电影, 午夜电影院, 在线影院a1166, 在线电影院, 在线观看美剧下载, 日本爱情电影, 日韩高清电影在线, 电影天堂网, 直播盒子app, 聚合直播, 高清美剧, 高清美剧在线观看 EhViewer-E站, E站, E站绿色版, qqmulu.com, qq目录网, qq网站目录,