BZOJ3108 [cqoi2013]图的逆变换
Description
定义一个图的变换:对于一个有向图\(G=(V, E)\),建立一个新的有向图:
\(V'=\{v_e|e \in E\}\),\(E'=\{(v_b, v_e)|b=(u,v), e=(v,w)\}\),\(G'=(V', E')\)。
也就是说每个边变成一个点,如果边b的终点和边e的起点相同则b到e连一条边。
现在给定\(G'\),问是否存在\(G\)。\(G'\)的点数不超过\(300\)。
Solution
如果\(G'\)中有\((u,w), (v,w)\)两条边,那么说明\(G\)中\(u,v\)的终点相同;那么\(G'\)中\(u,v\)连到的点应该是一样的。
也就是说,如果我在\(G'\)中令\(S_i\)表示\(i\)连到的点集,那么\(S_i=S_j\)和\(S_i\cap S_j\)必有一成立。
反之,如果上述条件成立,我可以把所有点按照\(S\)划分,即可得到\(G\)中每个点的出边集合;然后容易找出\(G\)中每个点的入边集合,易证这个\(G\)是合法的。
于是bitset求出\(S\)之后枚举\(i,j\)判断即可。
Code
#include <bitset>
#include <cstdio>
const int N = 305;
std::bitset<N> out[N], zero;
int main() {
int T;
scanf("%d", &T);
while (T--) {
int n, m;
scanf("%d%d", &n, &m);
zero.reset();
for (int i = 0; i < n; ++i) out[i].reset();
for (int x, y; m; --m) {
scanf("%d%d", &x, &y);
out[x].set(y);
}
bool ok = true;
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
ok = ok && ((out[i] & out[j]) == zero || out[i] == out[j]);
puts(ok ? "Yes" : "No");
}
return 0;
}
BZOJ3108 [cqoi2013]图的逆变换的更多相关文章
- BZOJ 3108: [cqoi2013]图的逆变换
3108: [cqoi2013]图的逆变换 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 627 Solved: 415[Submit][Statu ...
- P4575 [CQOI2013]图的逆变换
传送门 如果新的图里存在边\((u,v)\),那么说明原图中\(u\)的终点和\(v\)的起点是同一个点 于是可以对新图中的每个点维护它的起点和终点,如果有一条边就把对应两个应该相等的点用并查集连起来 ...
- [BZOJ 3108] 图的逆变换
Link: BZOJ 3108 传送门 Solution: 样例教你做题系列 观察第三个输出为No的样例,发现只要存在$edge(i,k),edge(j,k)$,那么$i,j$的出边一定要全部相同 于 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- 论文解读GCN 1st《 Deep Embedding for CUnsupervisedlustering Analysis》
论文信息 Tittle:<Spectral Networks and Locally Connected Networks on Graphs> Authors:Joan Bruna.Wo ...
- shader复杂与深入:Normal Map(法线贴图)1
转自:http://www.zwqxin.com/archives/shaderglsl/review-normal-map-bump-map.htmlNormal Map法线贴图,想必每个学习计算机 ...
- [离散时间信号处理学习笔记] 8. z逆变换
z逆变换的计算为下面的复数闭合曲线积分: $x[n] = \displaystyle{\frac{1}{2\pi j}}\oint_{C}X(z)z^{n-1}dz$ 式中$C$表示的是收敛域内的一条 ...
- NormalMap 贴图 【转】
转载: http://www.zwqxin.com/archives/shaderglsl/review-normal-map-bump-map.html 说起Normal Map(法线贴图),就 ...
- 译:Local Spectral Graph Convolution for Point Set Feature Learning-用于点集特征学习的局部谱图卷积
标题:Local Spectral Graph Convolution for Point Set Feature Learning 作者:Chu Wang, Babak Samari, Kaleem ...
随机推荐
- Power Designer将表字段注释转换为模型
选择工具——Execute Commands——Edit /Run Script 将代码粘贴到此处,然后执行.即成功加入注释 Option Explicit ValidationMode = True ...
- javascript window对象属性和方法
window对象 window对象表示一个浏览器窗口或一个框架.在客户端JavaScript中,window对象是全局对象,所有的表达式 都在当前的环境中计算.也就是说,要引用当前窗口根本不需要特殊的 ...
- captcha ~ 生成验证码图片
验证码在我们的世界中可以保护我们的信息安全的一个保障之一 这就是生成验证码的代码 # 导报 from captcha.image import ImageCaptcha #验证码的包 from ...
- SDK 上报信息 史上最全 持续更新
SDK 上报信息 史上最全 持续更新 接入SDK总会遇到各种需求,有些SDK巴不得把玩家信息全部上报到他们服务器! 以下是我接SDK遇到的, 欢迎大家补全. 上报事件 注册(按道理这个应该是SDK的功 ...
- atexit()使用
mian()主函数执行完毕后,是否可能会再执行一段代码?如果需要加入一段代码在mian退出后执行的代码,可以使用atexit()函数注册一个函数,代码如下: #include <iostream ...
- Activity四大启动模式
ctivity的四种启动模式: standard.singleTop.singleTask.singleInstance 为了打印方便,定义一个基础Activity,在其onCreate方法和onNe ...
- 使用XHProf分析PHP性能瓶颈(一)
安装xhprof扩展 wget http://pecl.php.net/get/xhprof-0.9.4.tgz tar zxf xhprof-0.9.4.tgz cd xhprof-0.9.4/ex ...
- linux文件命令汇总
查看文件内容命令 cat 直接输出在命令行,适用于很少内容时候的输出, vim .vi 通过 编辑命令的只读模式进行文件内容的查看(翻页快捷键好像是 ctrl + F 下一页, ctrl + B 上 ...
- JDBC中链接数据库前为什么要用Class.forName(驱动类)加载驱动类?
使用JDBC链接数据库时,为什么要先使用Class.forName(String name)来加载类? 答: 实际上就是为了加载类时,调用静态初始化块中的注册函数. 可以看一下MySql的Driber ...
- linux系统被ddos攻击识别
通过查看dmesg日志信息,当存在大量如下 的信息,服务器开始响应缓慢并丢失正常的计数数据.这是典型的SYN Flood攻击(或开放半连接攻击). [ [ [ [ [ [ [ TCP洪水攻击(SYN ...