博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛* B. 我觉得海星 bitset
阅读量:4308 次
发布时间:2019-06-06

本文共 1577 字,大约阅读时间需要 5 分钟。

题意:

一个无向图,判断是否含有五元环。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
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 secondtypedef long long ll;const int N = 205;int n;char s[N][N];bitset
bit[N][N];void Init() { rep(i,0,N-1) rep(j,0,N-1) bit[i][j].reset();}bool solve() { bitset
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

你可能感兴趣的文章
#10172. 「一本通 5.4 练习 1」涂抹果酱 题解
查看>>
vue-cli 3.0安装和使用
查看>>
数据结构与算法6—树
查看>>
.net mvc 超过了最大请求长度 限制文件上传大小
查看>>
PDU与SDU理解
查看>>
linux分盘笔记
查看>>
606. Construct String from Binary Tree
查看>>
[iOS] Win8下在Vmware11中安装使用苹果系统OS X 10.10
查看>>
Flex布局
查看>>
峰Redis学习(8)Redis 持久化AOF方式
查看>>
spring指导的index.html在spring文件夹中的位置
查看>>
12.6今日任务
查看>>
Debian8.3.0下安装Odoo8.0步骤
查看>>
Maven 3-Maven依赖版本冲突的分析及解决小结
查看>>
Lists
查看>>
WPF 关于鼠标事件和坐标
查看>>
100个直接可以拿来用的JavaScript实用功能代码片段
查看>>
[转]Design Pattern Interview Questions - Part 2
查看>>
winform错误提示 :窗口类名无效(Window class name is not valid)
查看>>
[STemWin教程入门篇]第一期:emWin介绍
查看>>