随笔分类 - 连通图+最小树形图+2-sat
1
摘要:/*2sat问题输出任意一组可行解*/#include#include#include#include#include#includeusing namespace std;#define N 2100struct node {int u,v,next;}ff[N],bian[N*N*8];int ...
阅读全文
摘要:/*题意:u,v,w队长,队员,队长留下两个队员可以回家,两个队员留下,队长回家2-sat问题,把两个队员看成一个整体就变成一个简单2-sat问题了*/#include#include#include#includeusing namespace std;#define N 6100#define...
阅读全文
摘要:/*题意:石头剪子布,现在已知n回合bob将会出什么,对alice有限制,对于u,v,w;如果w=0说明a,b回合必须出的一样否则,必须不一样。alice如果输一回合就输了,否则就赢了解:2-satalice有两个选择要么平手要么赢。对于第u回合,alice可以出au,bu;对于第v回合,alice...
阅读全文
摘要:/*题意:还是二进制异或,和poj3678类似建边和poj3678一样*/#include#include#include#define N 2100struct node{ int v,next;} bian[N*N];int head[N],dfn[N],low[N],vis[N],sta...
阅读全文
摘要:/*题意:给你一些边,每条边有一个值和一个运算符XOR OR AND求是否存在一些点使得所有的边根据这些运算符可以符合条件的权值.建边方式参考:http://blog.csdn.net/shuangde800/article/details/8876533这种建边方式真好,以后就用这种了0 -- ...
阅读全文
摘要:转载地址:http://blog.csdn.net/qq172108805/article/details/7603351/*2-sat问题,题意:有对情侣结婚,请来n-1对夫妇,算上他们自己共n对,编号为0~~n-1,他们自己编号为0所有人坐在桌子两旁,新娘不想看到对面的人有夫妻关系或偷奸关系,若...
阅读全文
摘要:/*思路:http://blog.csdn.net/string_yi/article/details/12686873hdu 1814 输出字典序最小的2-sat*/#include#include#include#define N 16100#define NN 210000struct ...
阅读全文
摘要:/*二分+2-sat题意:在一个二维平面上给你n个炸弹,和2*n个位置,每一行的两个位置只能有一个放炸弹现在炸弹爆炸有一个半径,当炸弹爆炸时两个炸弹的半径化成的圆不能相交,求最大半径二分半径,每次如果一个炸弹可放的两个位置中的一个与其他位置有矛盾,就进行建边,最后判断是否存在这样一组解即可。*/#i...
阅读全文
摘要:转载:http://blog.csdn.net/luyuncheng/article/details/15172827此题好纠结啊。。。其实2-sat关键是建边此题网上好多题解都是直接说了建边而且建边完全没有解释清楚,说了的也都是模模糊糊完全不能让人信服啊啊啊啊反正我是没有找到一个能让我完全理解的索...
阅读全文
摘要:/*题意:平面上n个点,确定一条连接各点的最短闭合旅程且每个点仅用一次。这个解的一般形式为NP的(在多项式时间内可以求出)建议通过只考虑双调旅程(bitonictour)来简化问题,这种旅程即为从最左点开始,严格地从左到右直至最右点,然后严格地从右到左直至出发点。每个点都要走一次,且每个点只能走一次...
阅读全文
摘要:/*三个点的话 A--D--B | C dis(AD)=(AB+AC-BC)/2;拓展到到n个点 每次去叶子节点,先去掉与A相连长度最小的。 将他们的长度加起来。*/#include#define N 110i...
阅读全文
摘要://用到了Havel-Hakimi定理,判断是否能够构图//两种情况不能构图,1:对剩下序列排序后,最大的度数超过了剩下的顶点数// 2:对最大的度数后面的f个度数减-后,出现了负数//记录到临街矩阵只需要每次排序后减-记录。#include#include#inc...
阅读全文
摘要:/*tle十几次,最后发现当i从1开始时,给环赋值时要注意啊!最小树形图 */#include#include#include#define N 110#define inf 0x3fffffff#define eps 1e-10struct node {int u,v;double w;}edge...
阅读全文
摘要:/*先吐槽下,刚开始没看懂题,以为只能是一个连通图0T0 题意:给你一个有向图,求G图中从v可达的所有点w,也都可以达到v,这样的v称为sink.求这样的v. 解;求强连通+缩点。求所有出度为0的点即为要求的点。 注意:可能有多个联通分支。*/#include#include#include#def...
阅读全文
摘要:/*先求出双联通缩点,然后进行树形dp*/#include#include#include#define inf 0x3fffffff#define N 11000struct node{ int u,v,next;} bian[N*4],edge[N*4];int head[N],yong...
阅读全文
摘要:#include#include#define N 1100struct node {int u,v,next;}bian[N*N*2];int head[N],dfn[N],low[N],index,cut[N],yong,visit[N],dd[N],len,vis[N];void init(...
阅读全文
摘要:#include#include#define N 11000/*去掉一个割点后,询问可以分得的联通图的个数*/struct node {int u,v,next;}bian[N*100];/*cut数组记录去掉某个节点后可以增加的联通分支的个数,num数组记录以i为根节点的联通图的元素的个数*/...
阅读全文
摘要:http://blog.csdn.net/lyy289065406/article/details/6756821http://www.cnblogs.com/wuyiqi/archive/2011/10/19/2217911.html#include "stdio.h"#include "stri...
阅读全文
摘要:/*1A 31ms*/#include#include#define N 300int n;struct node {int u,v,next;}bian[N*N*2];int color[N],vis[N],link[N],visit[N],ma[N][N],f[N],head[N],yong;v...
阅读全文
摘要:鉴于网上讲交叉染色的资料比较少,于是我把我自己的心得与方法贴出来,方便与大家共同进步。二分图:百度百科传送门wiki百科传送门判断一个图是否为二分图可以用交叉染色的方法来判断,可以用BFS,也可以用DFS,这里我用使用DFS来实现。思路:任意取一个点进行染色,如果发现要涂某一块时这个块已经被涂了色,...
阅读全文
1
浙公网安备 33010602011771号