BZOJ 3108: [cqoi2013]图的逆变换】的更多相关文章

3108: [cqoi2013]图的逆变换 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 627  Solved: 415[Submit][Status][Discuss] Description 给一个n结点m条边的有向图D,可以这样构造图E:给D的每条边u->v,在E中建立一个点uv,然后对于D中的两条边u->v和v->w,在E中从uv向vw连一条有向边.E中不含有其他点和边. 输入E,你的任务是判断是否存在相应的D.注意,D可以有重…
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)\)两条边…
传送门 如果新的图里存在边\((u,v)\),那么说明原图中\(u\)的终点和\(v\)的起点是同一个点 于是可以对新图中的每个点维护它的起点和终点,如果有一条边就把对应两个应该相等的点用并查集连起来 最后扫一遍,如果两个点没有边但他们的起点和终点在同一个集合那么说明gg了,否则就是可行的 //minamoto #include<bits/stdc++.h> #define R register #define GG return (void)(puts("No")) #d…
Link: BZOJ 3108 传送门 Solution: 样例教你做题系列 观察第三个输出为No的样例,发现只要存在$edge(i,k),edge(j,k)$,那么$i,j$的出边一定要全部相同 于是判断有相同出边的$i,j$是否有$edge(i,p)$但没有$edge(j,p)$即可判断是否输出No Code: #include <bits/stdc++.h> using namespace std; ; int n,m,x,y,T,e[MAXN][MAXN]; bool solve()…
突然发现我不会分层图最短路,写一发. 就是同层中用双向边相连,用单向边连下一层 #include <cstdio> #include <algorithm> #include <iostream> #include <string> #include <cstring> #include <queue> #include <vector> #define pa pair<int,int> #define mp…
3105: [cqoi2013]新Nim游戏 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 535  Solved: 317[Submit][Status][Discuss] Description 传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同).两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火柴.可以只拿一根,也可以拿走整堆火柴,但不能同时从超过一堆火柴中拿.拿走最后一根火柴的游戏者胜利. 本题的游戏…
Description 如果某个无向连通图的任意一条边至多只出现在一条简单回路(simple cycle)里,我们就称这张图为仙人图(cactus).所谓简单回路就是指在图上不重复经过任何一个顶点的回路. 举例来说,上面的第一个例子是一张仙人图,而第二个不是——注意到它有三条简单回路:(4,3,2,1,6,5,4).(7,8,9,10,2,3,7)以及(4,3,7,8,9,10,2,1,6,5,4),而(2,3)同时出现在前两个的简单回路里.另外,第三张图也不是仙人图,因为它并不是连通图.显然,…
给定一个弦图,问最少染色数. 对于弦图的一个完美消去序列,从后往前染色,每次染可以染的最小编号的颜色,由完美消去序列的定义,序列任一后缀的点的导出子图中,由该后缀第一个元素及其邻接点导出的子图一定是完全图,所以,序列中某一元素染的颜色编号是该完全图的大小.所以最小染色数小于等于最大团的点数,而显然前者又大于等于后者,故弦图的最小染色数等于最大团的大小. /************************************************************** Problem:…
题目大意: 给定一张无向图,判断是不是弦图. 题解: 今天刚学了<弦图与区间图> 本来写了一个60行+的学习笔记 结果因为忘了保存重启电脑后被还原了... 那就算了吧. MCS最大势算法,写起来挺愉悦的. 不过觉得除了做裸题就只能做裸题了.. 直接贴板子 #include <vector> #include <cstdio> #include <cstring> #include <algorithm> using namespace std;…
3107: [cqoi2013]二进制a+b Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 995  Solved: 444[Submit][Status][Discuss] Description 输入三个整数a, b, c,把它们写成无前导0的二进制整数.比如a=7, b=6, c=9,写成二进制为a=111, b=110, c=1001.接下来以位数最多的为基准,其他整数在前面添加前导0,使得a, b, c拥有相同的位数.比如在刚才的例子中…