随笔分类 - 连通分量+2-sat
POJ 3648 2-sat
摘要:题目大意:有一对新人结婚,邀请n对夫妇去参加婚礼。有一张很长的桌子,人只能坐在桌子的两边,还要满足下面的要求:1.每对夫妇不能坐在同一侧 2.n对夫妇之中可能有通奸关系(包括男男,男女,女女),有通奸关系的不能同时坐在新娘的对面,可以分开坐,可以同时坐在新娘这一侧。如果存在一种可行的方案,输出与新娘...
阅读全文
POJ 2296 二分+2-sat
摘要:题目大意:给定n个点,给每个点都安排一个相同的正方形,使这个点落在正方形的下底边的中间或者上底边的中间,并让这n个正方形不出现相互覆盖,可以共享同一条边,求这个正方形最大的边长这里明显看出n个点,每个点都只有在上底边和下底边两种选择,所以这里是2-sat解决这里全都是整数,而因为点在正方形的中间,所...
阅读全文
POJ 3207 2-sat
摘要:题目大意:在圆上顺时针n个点,给定m个连接,可以通过圆内或者圆外相交,问能不能找到一种方式,使这些连接的边都不相交这里很容易看出的是,这些边只有在圆外或者圆内两种连接方式,而且必须选择其中一种所以2-sat以这些边作为连接点,向内连接为2*i,圆外连接为2*i+1自己画画图可以找到规律if(b[i]...
阅读全文
POJ 2186
摘要:题目大意:给定一系列A->B的关系,说明A崇拜B,若A崇拜B,B崇拜C,那么A崇拜C,问存在多少头牛被其他所有牛都崇拜一道强连通分量的水题,将一个强连通分量的牛看做一个整体,记录每个强连通分量中牛的个数其实我们仔细想想,当把所有强连通分量都缩点后,例如强连通分量为3,那么剩下来的有向边必然小于3,否...
阅读全文
UVAlive 3211 Now or Later
摘要:题目大意:有n架飞机需要着陆。每架飞机都可以选择”早着陆“和”晚着陆“两种方式之一,且必须选择一种。第i架飞机的早着陆时间为Ei,晚着陆时间为Li,不得在其他时间着陆。你的任务是为这些飞机安排着陆方式,是的整个着陆计划尽量安全。换句话说,如果把所有飞机的师姐着陆时间按照从早到晚的顺序排列,相邻两个着...
阅读全文
POJ 1236 学校网络间的强连通
摘要:题目大意:N个学校之间有单向的网络,每个学校得到一套软件后,可以通过单向网络向周边的学校传输。问题1:初始至少需要向多少个学校发放软件,使得网络内所有的学校最终都能得到软件。问题2:至少需要添加几条传输线路(边),使任意向一个学校发放软件后,经过若干次传送,网络内所有的学校最终都能得到软件。链接...
阅读全文
HDU 3062 简单的2-SAT问题
摘要:在2-SAT,最让我纠结的还是添加有向线段的函数了void add_clause(int i,int a,int j,int b){ int m=2*i+a; int n=2*j+b; G[m^1].push_back(n); G[n^1].push_back(m);}这里a,b因为只有真假两种情况...
阅读全文
POJ 3177 边双连通求连通量度的问题
摘要:这道题的总体思路就是找到连通量让它能够看作一个集合,然后找这个集合的度,度数为1的连通量为k,那么需要添加(k+1)/2条边才可以保证边双连通这里因为一个连通量中low[]大小是相同的,所以我们用ans[low[i]]++来计度数这道题我最开始按学长的模板来写。。。。MLE到哭了,也不知道这道题为什...
阅读全文
重连通量的邻接矩阵和邻接表两种形式的求法
摘要:邻接矩阵:#include #include #include using namespace std;#define min(a,b) a s;void dfs(int u){ Edge t,tt; dfn[u]=low[u]=++tmpdfn,visit[u]=1; for(i...
阅读全文
ZOJ 2588 求割边问题
摘要:题目链接:http://vjudge.net/problem/viewProblem.action?id=14877题目大意:要尽可能多的烧毁桥,另外还要保证图的连通性,问哪些桥是绝对不能烧毁的我们很容易看出不能烧毁的是必然是作为割边存在的桥。求割边,我们用Tarjan算法,这与求割点有点小区别在与...
阅读全文
POJ 1523 网络连通
摘要:题目大意:给你一个网络组,每台机子与其他机子的关系,让你找到所有的割点,如果没有割点,输出无这道题目就是最直接的求割点问题,我在这里用的是邻接矩阵来存储机子之间的关系割点问题的求解需要对深度优先搜索序数有比较好的理解dfn[]用于存储当前的优先搜索序数,low[]存储当前点通过子节点或是回路所能达到...
阅读全文
浙公网安备 33010602011771号