[bzoj1242] Zju1015 Fishing Net弦图判定
弦图判定。。MCS算法。
先选一个点,然后每次拿 相邻已选点最多 的未选点。
选完之后判断一下是否是完美消除序列。
- #include<cstdio>
- #include<iostream>
- #include<cstring>
- #include<algorithm>
- #define ll long long
- using namespace std;
- const int maxn=;
- struct zs{int too,pre;}e[];int tot,last[maxn<<];
- bool con[maxn][maxn],u[maxn];
- int st[maxn],top,dl[maxn],tim[maxn],deg[maxn];
- int i,j,k,n,m,now;
- int ra;char rx;
- inline int read(){
- rx=getchar(),ra=;
- while(rx<''||rx>'')rx=getchar();
- while(rx>=''&&rx<='')ra*=,ra+=rx-,rx=getchar();return ra;
- }
- inline void ins(int a,int b){e[++tot].too=b,e[tot].pre=last[a],last[a]=tot;}
- #define f(x) x+n+1
- inline void mcs(){
- register int j;int i,mx=,pos;
- for(i=;i<=n;i++)ins(f(),i);
- for(i=n;i;i--){
- pos=;
- for(j=last[f(mx)];j&&!pos;j=e[j].pre)
- if(!u[e[j].too])pos=e[j].too,u[pos]=,dl[i]=pos;
- else last[f(mx)]=e[j].pre;
- if(!pos)mx--,i++;else{
- for(j=last[pos];j;j=e[j].pre)if(!u[e[j].too])
- deg[e[j].too]++,ins(f(deg[e[j].too]),e[j].too),mx=max(mx,deg[e[j].too]);
- }
- }
- }
- bool cmp(int a,int b){return tim[a]<tim[b];}
- int main(){
- n=read(),m=read();register int j;
- for(i=;i<=m;i++)j=read(),k=read(),ins(j,k),ins(k,j),con[j][k]=con[k][j]=;
- for(i=;i<=n;i++)con[i][i]=;
- mcs();
- for(i=;i<=n;i++)tim[dl[i]]=i;tim[]=1e9;
- for(i=n;i;i--){
- now=dl[i],top=;
- for(j=last[now];j;j=e[j].pre)if(tim[e[j].too]>i)
- st[++top]=e[j].too;
- if(top<)continue;int mn=;
- for(j=;j<=top;j++)if(tim[st[j]]<tim[mn])mn=st[j];
- for(j=;j<=top;j++)if(!con[st[]][st[j]]){
- puts("Imperfect");return ;
- }
- }
- puts("Perfect");
- }
[bzoj1242] Zju1015 Fishing Net弦图判定的更多相关文章
- bzoj 1242: Zju1015 Fishing Net 弦图判定
1242: Zju1015 Fishing Net弦图判定 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 214 Solved: 81[Submit ...
- ZOJ 1015 Fishing Net(弦图判定)
In a highly modernized fishing village, inhabitants there make a living on fishery. Their major tool ...
- ZOJ 1015 弦图判定
一些定义: 弦图是一种特殊图:它的所有极小环都只有3个顶点. 单纯点:该顶点与其邻接点在原图中的导出子图是一个完全图. 图G的完美消去序列:一个顶点序列a1a2a3...an,使得对于每个元素ai,a ...
- bzoj 1242 弦图判定 MCS
题目大意: 给定一张无向图,判断是不是弦图. 题解: 今天刚学了<弦图与区间图> 本来写了一个60行+的学习笔记 结果因为忘了保存重启电脑后被还原了... 那就算了吧. MCS最大势算法, ...
- bzoj1242(弦图判定)
cdqppt地址:https://wenku.baidu.com/view/a2bf4ad9ad51f01dc281f1df.html: 代码实现参考的http://blog.csdn.net/u01 ...
- Zju1015 Fishing Net
弦图判定 代码 #include<cstdio> #include<queue> #define mp make_pair #define fi first #define s ...
- 弦图的判定MCS算法(zoj1015)
题意:裸的弦图的判定: 弦图定义:给出一个无向连通图,如果每个环中都存在至少一条弦(环中存在不相邻的两点直接相连)这样的图叫做弦图: 转载:http://blog.csdn.net/crux_d/ar ...
- ZOJ 1015 Fishing Net(判断弦图)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=15 题意:给定一个图.判断是不是弦图? 思路:(1)神马是弦图?对于一 ...
- ●BZOJ 1006 [HNOI2008]神奇的国度(弦图最小染色数)○ZOJ 1015 Fishing Net
●赘述题目 给出一张弦图,求其最小染色数. ●题解 网上的唯一“文献”:<弦图与区间图>(cdq),可以学习学习.(有的看不懂) 摘录几个解决改题所需的知识点: ●子图和诱导子图(一定要弄 ...
随机推荐
- 深度搜索DFS-Lake Counting(POJ NO.2386)
题目链接POJ NO.2386 解题思路: 这个也是一个dfs 的应用,在书上的例子,因为书上的代码并不全,基本都是函数分块来写,通过这个题目也规范了代码,以后能用函数的就都用函数来实现吧.采用深度优 ...
- Java中 &&与&,||与|的区别
区别 && || 是逻辑运算,支持短路运算 & | 是位运算,不支持短路运算 短路运算 当有多个表达式时,左边的表达式值可以确定结果时,就再继续运算右边的表达式的值; 举例 ...
- android v4兼容包
一句话解释android兼容包就是:支持更多的组件,样式更好看了.好粗糙的解释啊! 我们都知道Android一些SDK比较分裂,为此google官方提供了Android Support Library ...
- c#扩展方法的使用
"扩展方法使您能够向现有类型"添加"方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型." 1.为什么会有扩展方法 你一定很疑问什么是扩展方法!什么 ...
- jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})等的区别详细讲解 ----转载
1.(function($) {-})(jQuery); 1).原理: 这实际上是匿名函数,如下: function(arg){-} 这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写 ...
- IT服务(运维)管理实施的几个要点--序言
IT服务(运维)管理(不是IT运维技术)是IT行业当中相对比较"窄"的一个分支,通常只被金融.电信等大型数据中心的中高层管理人员所关注.但是根据笔者多年从事IT服务和服务管理的经验 ...
- 关于《Web接口开发与自动化测试--基于Python语言》
关于封面logo 首先,你会被书封上面logo吸引,这么炫酷?双蛇杖?嗯,这是Requests的新logo. 旧的logo是一只乌龟. 新logo是双蛇杖: 看到新logo我首先想到的是 火爆全网页游 ...
- [编织消息框架][JAVA核心技术]动态代理应用1
前面几篇介绍,终于到了应用阶段啦,我们来做一个RPC来加强学过的知识 做基础核心时先确定解决什么问题,提供什么服务,同将来扩展等 rpc 分两部份,一个是调用者,另一方是服务提供者 调用者只关心那个服 ...
- [编织消息框架][网络IO模型]NIO(select and poll)
上面测试论证系统内核在read data时会阻塞,如果我们在把第一个阶段解决掉那么性能就会提高 NIO 编程 JDK 1.4中的java.nio.*包中引入新的Java I/O库,其目的是提高速度.实 ...
- Python学习_11_类和实例
类和实例 类是对象创建实例的模板,而实例则是对象的实体.类使用class关键字定义: class MyClass: pass python中创建实例直接使用工厂函数(类名加上一对括号),和其他的 ...