- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 uva 11294 2-sat
/** 挺简单的一道题wa了好久..应该还是当时没完全理解2-sat模板就随便套.. 这个模板中,构造一个有向图G,其中每个变量拆成两个节点2i和2i+1,分别表示xi为假和xi为真,之前是把这两个真假弄反了 对于xi为真或xj为假这样的条件,连有向边2i+1->2j以及2j+1->2i 对于每个没有赋值的变量,设为xi,我们先假定它为假,然后标记节点2i,并沿着有向边标记所有能标记的点,如果过程
2017-01-15 09:48:19 305
原创 uva 11396 二分图判定
/** 首先,这个图要满足边数的两倍等于点数乘3。 其次,由于一个爪的中心点不可能与另一个中心点相连,整个图相当于分成两个部分, 中心点和非中心点,所以这个图其实就是一个二分图。 满足这两个条件即可。 **/ #include #include #include #include using namespace std; int color[305]; vector G[305];
2017-01-14 17:01:31 298
原创 uvalive 3713 2-sat
/** 分析:训练指南图论例题10,p327 2-sat **/ #include #include #include #include #include #include using namespace std; const int maxn=100005; struct TwoSAT { int n; vector G[maxn*2]; bool mark[m
2017-01-13 20:25:51 373
原创 UVALive 3211 (训练指南)图论例题9 2-sat+二分
/** 2-sat模板 **/ #include #include #include #include #include #include using namespace std; const int maxn=2005; //恩,我理解的这个2-sat模板就是用来使得一些变量满足一些题目给的条件, //更准确的说,是每次不能同时满足某两个条件时就形成一个子句,有很多这些子句限制..
2017-01-11 23:18:52 288
原创 UVA 11324 有向图强连通分量缩点得SCC图,并在其上求最长路径
#include #include #include #include #include using namespace std; typedef long long ll; const int maxn=50005; vector G[maxn],g[maxn]; int pre[maxn],lowlink[maxn],sccno[maxn],dfs_clock,scc_cnt,sc
2017-01-11 20:30:09 300
原创 图论 有向图的强连通分量(模板)LA 4287
#include #include #include #include #include using namespace std; typedef long long ll; const int maxn=50005; vector G[maxn]; int pre[maxn],lowlink[maxn],sccno[maxn],dfs_clock,scc_cnt; stack S;
2017-01-11 10:42:38 359
原创 图论 无向图的双连通分量(模板) LA5135
#include #include #include #include #include using namespace std; typedef long long ll; const int maxn=50005; int pre[maxn],iscut[maxn],bccno[maxn],dfs_clock,bcc_cnt; vector G[maxn],bcc[maxn]; s
2017-01-10 23:16:16 336
原创 图论 欧拉回路 uva10054
无向图的欧拉回路判断两个条件 1.所有的点的度为偶数 2.满足1的条件下,所给的图连通 #include #include #include using namespace std; typedef long long ll; int G[1005][1005],d[1005]; void eular(int x) { int i; for(i=1;i<=50
2017-01-09 21:58:27 336
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人