博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU - 6370 Werewolf 2018 Multi-University Training Contest 6 (DFS找环)
阅读量:4971 次
发布时间:2019-06-12

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

求确定身份的人的个数。

只能确定狼的身份,因为只能找到谁说了谎。但一个人是否是民,无法确定。

将人视作点,指认关系视作边,有狼边和民边两种边。

确定狼的方法只有两种:

  1. 在一个仅由一条狼边组成的环中,狼边指向的那个点必定是狼。

  2. 环外指认铁狼为民的也必定是狼。

所以用原图找环求情况1中的铁狼,反向建图找情况2中的狼。

#include 
using namespace std;typedef long long LL;const int maxn =1e5+5;const int INF =0x3f3f3f3f;struct Edge{ int v;bool w; };Edge G[maxn];vector
rG[maxn];int pre[maxn],dfn;bool isw[maxn];queue
Q;int res;void init(int N){ res=0; memset(pre,0,sizeof(pre)); memset(isw,0,sizeof(isw)); for(int i=1;i<=N;++i) rG[i].clear();}void AddEdge(int u,int v,bool w){ G[u] = (Edge){v,w}; rG[v].push_back((Edge){u,w});}void BFS(){ while(!Q.empty()){ int u = Q.front();Q.pop(); for(int i=0;i

 

转载于:https://www.cnblogs.com/xiuwenli/p/9445527.html

你可能感兴趣的文章
如何对网课、游戏直播等进行录屏
查看>>
UIView
查看>>
有关去掉谷歌及火狐浏览器文本框 数字类型 上下箭头的方法
查看>>
MySQL数据迁移到SQL Server
查看>>
复杂链表的复制(python)
查看>>
添加日期选择控件
查看>>
jquery.cookie.js操作cookie
查看>>
javascript遍历数组
查看>>
bzoj4765: 普通计算姬 (分块 && BIT)
查看>>
thinkphp5-----模板中函数的使用
查看>>
POJ-3211 Washing Clothes[01背包问题]
查看>>
[BZOJ4832][Lydsy1704月赛]抵制克苏恩
查看>>
数据库三范式
查看>>
看完漫画秒懂区块链
查看>>
开发工具,做一个有效率的开发者
查看>>
对Haskell这门语言的基本认识
查看>>
mysql 安装补充
查看>>
大学里如何学习 ?
查看>>
Oracle命令类别
查看>>
js面试题:关于数组去重的四种方法总结
查看>>