从某一点开始,以层次遍历的方式建树
若三点a、b、c互相连接,首先必先经过其中一点a,然后a可以拓展b、c两点,b、c两点的高度是相同的,若b(c)拓展时找到高度与之相同的点,则存在三点互相连接

//等等:该算法正确证有待斟酌,我在看到这个方法的增强版,这方法也许有漏洞

//(注:这想法应该是在17年网络同步赛的时候别人想到的(大致是这样),但貌似写的方法跟我不同)

与acm网络同步赛的某道题有点类似(还有那个定理:若人数大于等于六个,至少存在三个人互相认识,或三个人互不认识)

别人的方法在这(https://www.jisuanke.com/minicourse/1249):

 1 /*
 2 从某一点开始,以层次遍历的方式建树
 3 若三点a、b、c互相连接,首先必先经过其中一点a,然后a可以拓展b、c两点,b、c两点的高度是相同的,若b(c)拓展时找到高度与之相同的点,则存在三点互相连接
 4 */
 5 #include <cstdio>
 6 #include <cstdlib>
 7 #include <cstring>
 8 #include <cmath>
 9 #include <list>
10 #include <stack>
11 #include <vector>
12 #include <set>
13 #include <map>
14 #include <queue>
15 #include <algorithm>
16 #include <iostream>
17 using namespace std;
18
19 struct node
20 {
21     long d;
22     struct node *next;
23 }*point[100005],*p;
24 long q[100005],dep[100005];
25
26 int main()
27 {
28     long n,m,i,head,tail,a,b;
29     scanf("%ld%ld",&n,&m);
30     for (i=1;i<=n;i++)
31         point[i]=NULL;
32     for (i=1;i<=m;i++)
33     {
34         scanf("%ld%ld",&a,&b);
35         p=(struct node *) malloc (sizeof(struct node));
36         p->d=a;
37         p->next=point[b];
38         point[b]=p;
39
40         p=(struct node *) malloc (sizeof(struct node));
41         p->d=b;
42         p->next=point[a];
43         point[a]=p;
44     }
45     for (i=1;i<=n;i++)
46         dep[i]=-1;
47     //有可能有很多块
48     for (i=1;i<=n;i++)
49         if (dep[i]==-1)
50         {
51             q[1]=i; dep[i]=0;
52             head=0;
53             tail=1;
54             while (head<tail)
55             {
56                 head++;
57                 p=point[q[head]];
58                 while (p)
59                 {
60                     if (dep[p->d]==-1)
61                     {
62                         tail++;
63                         q[tail]=p->d;
64                         dep[p->d]=dep[q[head]]+1;
65                     }
66                     else if (dep[p->d]==dep[q[head]])
67                     {
68                         printf("1");
69                         return 0;
70                     }
71                     p=p->next;
72                 }
73             }
74         }
75     printf("0");
76     return 0;
77 }

转载于:https://www.cnblogs.com/cmyg/p/8765908.html

SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛 D. 白色相簿相关推荐

  1. SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛*(抽球游戏-fwt开立方)

    Anthony 手中有 nnn 个依次标着整数 a1" role="presentation" style="position: relative;" ...

  2. SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛-白色相簿

    题意: 给定无向图,n个点,m条边,判断图中是否存在三元环.(n <= 1e5, m <= 3e6) 思路: 计数三元环的复杂度是mlogm,在这里1s跑不过.尝试通过bitset记录每个 ...

  3. SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛 B.我觉得海星

    https://nanti.jisuanke.com/t/26016 给定一个简单无向图,请你判断这个图是否海星,一个图海星当且仅当它内部存在五个互不相同的点 A,B,C,D,EA,B,C,D,E,满 ...

  4. SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛* B. 我觉得海星

    res[i][j]:i->{x1,x2,x3...}->j 的集合的异或值 c[i][j]:i->{x1,x2,x3...}->j 的集合中元素个数 flag[i][j][k] ...

  5. SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛* B. 我觉得海星 bitset

    B. 我觉得海星 题意: 一个无向图,判断是否含有五元环.T 组数据,n 个点. T<=100, n<=200 . tags: 一开始想 dfs,发现搞不出来.赛后听大佬们bb,原来可以 ...

  6. 【图论】计蒜客商汤在线编程挑战赛 D题 白色相簿

    给定一个无向图,找出图中有没有三元环 我采用的的是如下一种做法,随便找一个点作为根节点,bfs生成一棵树,同时保存每个节点的深度,如果某点的子节点已经拥有了深度,则判断这个深度是否与该点的深度相等,不 ...

  7. 格灵深瞳发起 AI · 爱 算法 在线编程挑战赛

    点击我爱计算机视觉标星,更快获取CVML新技术 DEEP SEA FISH 编 程 高 手 集 结 令 一 决 高 下 你热爱编程,喜欢AI么?如果你的答案是Yes,这里有一场绝不可错过的在线编程挑战 ...

  8. 北京,上海 商汤研究院基础视觉组正式员工(校招、社招)实习生长期招聘...

    关注公众号,获取更多AI领域发展机会 组别介绍 商汤研究院基础视觉组是商汤研究执行总监代季峰博士(https://jifengdai.org/)领导,致力于提出和实现最前沿的算法,保持算法在工业界和学 ...

  9. 商汤科技43篇论文横扫2017全球顶级视觉学术会议 实习生摘得五项世界冠军

    华人学者7月在夏威夷CVPR 掀起的中国风尚未完全褪去,近日又在水城威尼斯ICCV 引爆中国学术研究风暴.中国最大新锐AI企业商汤科技与香港中大-商汤科技联合实验室,继以23篇论文横扫CVPR后,又以 ...

最新文章

  1. Repeater 嵌套 Repeater
  2. 如何写好注释,让同事赞不绝口?
  3. mysql 批量drop_MySql批量drop table
  4. 荣事达空调质量差3天即坏
  5. web开发中的长度单位(px,em,ex,rem),如何运用,看完这篇就够了!
  6. 11-直接内存 Direct Memory
  7. 【转】使用JMeter对数据库做压力测试
  8. 03 - 变量的数据类型
  9. python编辑七段数码管引脚图_初识原理图
  10. input 模糊匹配功能 文本框模糊匹配(纯html+jquery简单实现) demo
  11. 阿里云服务器安装mysql数据库及连接使用
  12. EDR BYPASS
  13. 飞思卡尔16位单片机(七)——SCI串口测试
  14. 电脑开机计算机配置,电脑开机显示正在配置更新请勿关闭计算机 重新启动之后,电脑里的数...
  15. LazyBrush论文笔记(4):问题建模-平滑项与数据项
  16. 使用less为长篇输出分页--用Enki学Linux系列(12)
  17. ****you do not have the permissions necessary t...
  18. 量化选股——基于动量因子的行业风格轮动策略(第2部分—策略回测)
  19. python 解决第三方app微信登入昵称乱码的问题
  20. 区块链技术与其在旅游行业的应用

热门文章

  1. 关于电子科技大学(清水河校区)门禁设置的调研
  2. Mac下编译太阳神三国杀源码
  3. 新版仿58转转闲鱼网站源码+二手商品交易平台系统
  4. C#DataSet处理数据
  5. 嵌入式文件系统损耗平衡算法
  6. 大学物理学下——静电场05高斯定理
  7. 电视调试html页面有左边白边,网页顶部有白边
  8. MAAS+JUJU+CONJURE-UP全自动部署OPENSTACK
  9. Android 开发--多渠道打包实现
  10. git学习(1)背景介绍