灰狼呼唤着同胞(brethren)
先求出确定边的联通块,有cnt块,显然方案数为2^(cnt-1)
联通块用dfs很好求
但此题还有并查集解法,且与一道叫团伙的题很像
边为0为敌人,1为朋友,敌人的敌人是朋友,朋友的朋友是朋友,正好对应本题情况
数据在管理里的文件
现附上dfs版(并查集还没写)
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- using namespace std;
- struct Node
- {
- int next,to,dis;
- }edge[];
- int head[],num,col[],n,m,cnt;
- long long ans;
- bool ok;
- void add(int u,int v,int d)
- {
- num++;
- edge[num].next=head[u];
- head[u]=num;
- edge[num].to=v;
- edge[num].dis=d;
- }
- void dfs(int x)
- {int i,j;
- for (i=head[x];i;i=edge[i].next)
- {
- int v=edge[i].to;
- if (col[v]==-)
- {
- if (edge[i].dis==) col[v]=col[x]^,dfs(v);
- else col[v]=col[x],dfs(v);
- }
- else
- {
- if (edge[i].dis==&&col[v]==col[x]) ok=;
- if (edge[i].dis&&col[v]!=col[x]) ok=;
- }
- }
- }
- int main()
- {int Test,T,i,u,v,d;
- cin>>Test>>T;
- while (T--)
- {num=;cnt=;
- memset(head,,sizeof(head));
- scanf("%d%d",&n,&m);
- for (i=;i<=m;i++)
- {
- scanf("%d%d%d",&u,&v,&d);
- add(u,v,d);
- add(v,u,d);
- }
- for (i=;i<=n;i++) col[i]=-;
- ok=;
- for (i=;i<=n;i++)
- if (col[i]==-)
- {
- cnt++;
- col[i]=;
- dfs(i);
- }
- ans=;
- if (!ok) printf("0\n");
- else
- {
- for (i=;i<=cnt-;i++)
- ans=(ans*)%;
- printf("%lld\n",ans);
- }
- }
- }
灰狼呼唤着同胞(brethren)的更多相关文章
- 常州模拟赛d3t2 灰狼呼唤着同胞
题目背景 我的母亲柯蒂丽亚,是一个舞者.身披罗纱,一身异国装扮的她,来自灰狼的村子. 曾经在灰狼村子担任女侍的她,被认定在某晚犯下可怕的罪行之后,被赶出了村子. 一切的元凶,都要回到母亲犯下重罪的那一 ...
- Jquery 的遍历,祖先、后代、同胞以及其过滤
什么是遍历? jQuery 遍历,意为“移动”,用于根据其相对于其他元素的关系来“查找”(或选取)HTML 元素.以某项选择开始,并沿着这个选择移动,直到抵达您期望的元素为止. 下图展示了一个家族树. ...
- HDU2191悼念512汶川大地震遇难同胞——珍惜现在,感恩生活[多重背包]
悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...
- 多重背包问题:悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(HDU 2191)(二进制优化)
悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 HDU 2191 一道裸的多重背包问题: #include<iostream> #include<algorithm> #i ...
- hdu 2191 多重背包 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
http://acm.hdu.edu.cn/showproblem.php?pid=2191 New~ 欢迎“热爱编程”的高考少年——报考杭州电子科技大学计算机学院关于2015年杭电ACM暑期集训队的 ...
- HDU 2188 悼念512汶川大地震遇难同胞――选拔志愿者(巴什博奕)
选拔志愿者 题意: 对于四川同胞遭受的灾难,全国人民纷纷伸出援助之手,几乎每个省市都派出了大量的救援人员,这其中包括抢险救灾的武警部队,治疗和防疫的医护人员,以及进行心理疏导的心理学专家.根据要求,我 ...
- jQuery 遍历同胞(siblings)
同胞拥有相同的父元素. 通过 jQuery,您能够在 DOM 树中遍历元素的同胞元素. 在 DOM 树中水平遍历 有许多有用的方法让我们在 DOM 树进行水平遍历: siblings() next() ...
- 原生JavaScript 获取下一个/上一个同胞元素
看JavaScript遇到的问题,研究了下 获取上一个或者下一个同胞元素,使用很多人会立马想到JQuery prev() 和 next() 的确非常方便.那么原生的JavaScript该怎么获取 上 ...
- HDU-2188 悼念512汶川大地震遇难同胞——选拔志愿者
http://acm.hdu.edu.cn/showproblem.php?pid=2188 巴什博奕(Bash Game)的转换:换一种说法而已 悼念512汶川大地震遇难同胞——选拔志愿者 Time ...
随机推荐
- 【Alpha版本】冲刺阶段 - Day2 - 漂流
今日进展 袁逸灏:实现车辆的子弹发射(3.5h) 启动类,子弹类(修改类),游戏画面类(修改类) 刘伟康:继续借鉴其他 alpha 冲刺博客,初步了解墨刀.leangoo等工具(2h) 刘先润:解决了 ...
- 【iOS】swift 枚举
枚举语法 你可以用enum开始并且用大括号包含整个定义体来定义一个枚举: enum SomeEnumeration { // 在这里定义枚举 } 这里有一个例子,定义了一个包含四个方向的罗盘: enu ...
- 2017北京国庆刷题Day4 morning
期望得分:0+40+30=70 实际得分:0+10+10=20 题目修改:只能由0变1,只能用一次操作 大模拟 #include<cstdio> #include<cstring&g ...
- css中的position
一.position语法与结构 position语法: position : static absolute relative position参数:static : 无特殊定位,对象遵循HTML定位 ...
- ThreadLocal源码分析:(一)set(T value)方法
在ThreadLocal的get(),set()的时候都会清除线程ThreadLocalMap里所有key为null的value. 而ThreadLocal的remove()方法会先将Entry中对k ...
- Web Api 过滤器之 AuthorizationFilter 验证过滤器
该过滤器是最先执行的过滤器,即使把它放在最后 API [MyActionFilter] [MyExceptionFilter] [MyAuthorize] public void Get() { Tr ...
- Tomcat性能优化及JVM内存工作原理
Java性能优化原则:代码运算性能.内存回收.应用配置(影响Java程序主要原因是垃圾回收,下面会重点介绍这方面) 代码层优化:避免过多循环嵌套.调用和复杂逻辑. Tomcat调优主要内容如下: 1. ...
- hadoop2.6.0实践:A02 问题处理 util.NativeCodeLoader: Unable to load native-hadoop library for your platform
############################################################# hadoop "util.NativeCodeLoader: Un ...
- GIT入门笔记(9)- git的add和commit机制原理
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支mas ...
- 转:swing 中paint与paintComponent的区别(jcomponent)
http://blog.csdn.net/q597756870/article/details/17854247 查API文档,查得在类Jcomponent下的paint方法有以下解释: ...