SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛 D. 白色相簿
从某一点开始,以层次遍历的方式建树
若三点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. 白色相簿相关推荐
- SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛*(抽球游戏-fwt开立方)
Anthony 手中有 nnn 个依次标着整数 a1" role="presentation" style="position: relative;" ...
- SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛-白色相簿
题意: 给定无向图,n个点,m条边,判断图中是否存在三元环.(n <= 1e5, m <= 3e6) 思路: 计数三元环的复杂度是mlogm,在这里1s跑不过.尝试通过bitset记录每个 ...
- SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛 B.我觉得海星
https://nanti.jisuanke.com/t/26016 给定一个简单无向图,请你判断这个图是否海星,一个图海星当且仅当它内部存在五个互不相同的点 A,B,C,D,EA,B,C,D,E,满 ...
- 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] ...
- SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛* B. 我觉得海星 bitset
B. 我觉得海星 题意: 一个无向图,判断是否含有五元环.T 组数据,n 个点. T<=100, n<=200 . tags: 一开始想 dfs,发现搞不出来.赛后听大佬们bb,原来可以 ...
- 【图论】计蒜客商汤在线编程挑战赛 D题 白色相簿
给定一个无向图,找出图中有没有三元环 我采用的的是如下一种做法,随便找一个点作为根节点,bfs生成一棵树,同时保存每个节点的深度,如果某点的子节点已经拥有了深度,则判断这个深度是否与该点的深度相等,不 ...
- 格灵深瞳发起 AI · 爱 算法 在线编程挑战赛
点击我爱计算机视觉标星,更快获取CVML新技术 DEEP SEA FISH 编 程 高 手 集 结 令 一 决 高 下 你热爱编程,喜欢AI么?如果你的答案是Yes,这里有一场绝不可错过的在线编程挑战 ...
- 北京,上海 商汤研究院基础视觉组正式员工(校招、社招)实习生长期招聘...
关注公众号,获取更多AI领域发展机会 组别介绍 商汤研究院基础视觉组是商汤研究执行总监代季峰博士(https://jifengdai.org/)领导,致力于提出和实现最前沿的算法,保持算法在工业界和学 ...
- 商汤科技43篇论文横扫2017全球顶级视觉学术会议 实习生摘得五项世界冠军
华人学者7月在夏威夷CVPR 掀起的中国风尚未完全褪去,近日又在水城威尼斯ICCV 引爆中国学术研究风暴.中国最大新锐AI企业商汤科技与香港中大-商汤科技联合实验室,继以23篇论文横扫CVPR后,又以 ...
最新文章
- Repeater 嵌套 Repeater
- 如何写好注释,让同事赞不绝口?
- mysql 批量drop_MySql批量drop table
- 荣事达空调质量差3天即坏
- web开发中的长度单位(px,em,ex,rem),如何运用,看完这篇就够了!
- 11-直接内存 Direct Memory
- 【转】使用JMeter对数据库做压力测试
- 03 - 变量的数据类型
- python编辑七段数码管引脚图_初识原理图
- input 模糊匹配功能 文本框模糊匹配(纯html+jquery简单实现) demo
- 阿里云服务器安装mysql数据库及连接使用
- EDR BYPASS
- 飞思卡尔16位单片机(七)——SCI串口测试
- 电脑开机计算机配置,电脑开机显示正在配置更新请勿关闭计算机 重新启动之后,电脑里的数...
- LazyBrush论文笔记(4):问题建模-平滑项与数据项
- 使用less为长篇输出分页--用Enki学Linux系列(12)
- ****you do not have the permissions necessary t...
- 量化选股——基于动量因子的行业风格轮动策略(第2部分—策略回测)
- python 解决第三方app微信登入昵称乱码的问题
- 区块链技术与其在旅游行业的应用