B. 我觉得海星

题意:
一个无向图,判断是否含有五元环。T 组数据,n 个点。 T<=100, n<=200 。
tags:
一开始想 dfs,发现搞不出来。赛后听大佬们bb,原来可以 bitset 水过去 。
bitset<1000> bit[i][j] 存 i -> { k1,k2... } -> j ,也就是点 i 经过一个点可以点 j 的集合。
然后枚举一条边 i -> j ,再枚举一个点 k ,看是否有 k -> x1 -> i 和 k -> x2 -> j 。
复杂度 O(T * n^3 / 32) 。

#include<bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/STACK:102400000,102400000")
#define rep(i,a,b) for (int i=a; i<=b; ++i)
#define per(i,b,a) for (int i=b; i>=a; --i)
#define mes(a,b)  memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
#define MP make_pair
#define PB push_back
#define fi  first
#define se  second
typedef long long ll;
const int N = 205;int n;
char s[N][N];
bitset<N> bit[N][N];
void Init() {rep(i,0,N-1) rep(j,0,N-1) bit[i][j].reset();
}
bool solve() {bitset<N> bi, bj, bb;rep(i,1,n) rep(j,1,n) if(j!=i && s[i][j]=='1')rep(k,1,n) if(k!=i && k!=j){bi=bit[k][i], bj=bit[k][j];bi.reset(j),  bj.reset(i);if(bi.count()==0 || bj.count()==0) continue;bb = bi|bj;if(bb.count()>1) return true;}return false;
}
int main()
{int T;  scanf("%d", &T);rep(cas, 1, T){Init();scanf("%d", &n);rep(i,1,n) scanf("%s", s[i]+1);rep(i,1,n) rep(j,1,n) if(j!=i)rep(k,1,n) if(k!=i && k!=j && s[i][k]=='1' && s[j][k]=='1'){bit[i][j].set(k);}printf("Case #%d: ", cas);if(solve()) puts("Starfish!");else puts("Walk Walk");}return 0;
}

转载于:https://www.cnblogs.com/sbfhy/p/8884808.html

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

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

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

  2. 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] ...

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

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

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

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

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

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

  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. ORACLE百万记录SQL语句优化技巧
  2. 哈佛MIT坐镇的波士顿,正式宣布政府禁用人脸识别
  3. mysql 使用表 语句_【mysql】mysql 经常使用建表语句
  4. 组件赋值——@Value  ---@PropertySource(value={“classpath:/person.properties“})
  5. redis--Sentinel
  6. python中的全局变量与局部变量
  7. html图像特征提取,图像识别之图像特征提取
  8. JVM(三)——对象的访问定位
  9. Matrix(二维树状数组)入门第一题
  10. 微软CEO:别被Google的TPU诱惑,Kinect“复活” | Build 2018
  11. 一个影响我现在生活状况的故事[转载]
  12. 数字个数依次叠加 s=a+aa+aaa+aaaa+aa...a
  13. VS2005 My.Computer.Registry 对象 操作注册表 简单示例
  14. cvt公链采用什么结构_好马配好鞍,迈锐宝上全新的CVT变速箱,是什么来头?
  15. cactiez mysql密码_CactiEZ中文解决方案+使用教程(1)
  16. matlab 平滑曲线连接_用MATLAB做数据拟合究竟有多直观
  17. 全面了解三极管——三极管用作开关管1
  18. 机器人相关的会议期刊
  19. android自定义进度条图片,Android零基础入门|自定义酷炫进度条
  20. vue改变class名字_vue添加class类名

热门文章

  1. 常见电容器图片_对智能锁的几大常见误区,很多人都中招了!
  2. 前端实战复习——歌词滚动
  3. MSK 信号调制推导2
  4. ORA-20001:Password length less than 8
  5. CMU 15-213 CSAPP (Ch5~Ch7)
  6. Shift-JIS字符集判断,注意绿色的部分是ms932包含的,用getlength()方法获得的length都是1,判断成半角会出现bug
  7. 林业地理信息数据管理之问题解答
  8. 关于树叶的活动设计_中班活动设计-树叶
  9. 2021数字电路课程设计 一位十进制数加减法运算电路
  10. 移动,联通,电信手机都属于什么频段?