08 2014 档案

摘要:/*tle十几次,最后发现当i从1开始时,给环赋值时要注意啊!最小树形图 */#include#include#include#define N 110#define inf 0x3fffffff#define eps 1e-10struct node {int u,v;double w;}edge... 阅读全文
posted @ 2014-08-27 16:52 HYDhyd 阅读(185) 评论(0) 推荐(0)
摘要:/*题意:给出一个有向强连通图,每条边有两个值分别是破坏该边的代价和把该边建成无向边的代价(建立无向边的前提是删除该边)问是否存在一个集合S,和一个集合的补集T,破坏所有S集合到T集合的边代价和是X,然后修复T到S的边为无向边代价和是Y,满足Y 如果存在可行流 那么说明对于任意的 S 集合流出的肯... 阅读全文
posted @ 2014-08-23 17:38 HYDhyd 阅读(129) 评论(0) 推荐(0)
摘要://刚开始乱搞。//网络流求解,如果最大流=所有元素的和则有解;利用残留网络判断是否唯一,//方法有两种,第一种是深搜看看是否存在正边权的环,见上一篇4888//至少四个点构成的环,第二种是用矩阵dp,只需要满足某行的i列元素0,而另一行的i列元素>0,j列元素#include#includeusi... 阅读全文
posted @ 2014-08-23 16:42 HYDhyd 阅读(160) 评论(0) 推荐(0)
摘要:/*很明显的最大权闭合图题*/#include#include#includeusing namespace std;#define N 2100#define inf 0x3fffffffstruct node {int u,v,w,next;}bian[N*N*20];int head[N],y... 阅读全文
posted @ 2014-08-23 16:15 HYDhyd 阅读(193) 评论(0) 推荐(0)
摘要:第一步,考虑如何求是否有解。使用网络流求解,每一行和每一列分别对应一个点,加上源点和汇点一共有N+M+2个点。有三类边: 1. 源点 -> 每一行对应的点,流量限制为该行的和2. 每一行对应的点 -> 每一列对应的点,流量限制为 K3. 每一列对应的点 -> 汇点,流量限制为该列的和 对上图做最大... 阅读全文
posted @ 2014-08-21 20:03 HYDhyd 阅读(144) 评论(0) 推荐(0)
摘要:/*和求最小生成树差不多转载思路:http://www.cnblogs.com/wally/p/3228171.html思路:之前做过最小比率生成树,也是属于0/1整数划分问题,这次碰到这道最优比率环,很是熟悉,可惜精度没控制好,要不就是wa,要不就是tle,郁闷啊!实在是懒得码字,直接copy吧:... 阅读全文
posted @ 2014-08-20 16:22 HYDhyd 阅读(161) 评论(0) 推荐(0)
摘要:/*迭代法 :204Ms*/#include#include#include#define N 1100#define eps 1e-10#define inf 0x3fffffffstruct node { int u,v,w;}p[N];double ma[N][N];double dist... 阅读全文
posted @ 2014-08-19 09:52 HYDhyd 阅读(204) 评论(0) 推荐(0)
摘要:转载:http://blog.csdn.net/sdj222555/article/details/7490797网上有一些很数学的证明方法,表示看的挺晕,自己理解了一下后,发表下自己的看法,如果有错误,再进行修改其实原题就是求 MIN( ∑CiXi / ∑DiXi ) Xi∈{0,1} ,对每个生... 阅读全文
posted @ 2014-08-19 09:43 HYDhyd 阅读(226) 评论(0) 推荐(0)
摘要:/*先吐槽下,刚开始没看懂题,以为只能是一个连通图0T0 题意:给你一个有向图,求G图中从v可达的所有点w,也都可以达到v,这样的v称为sink.求这样的v. 解;求强连通+缩点。求所有出度为0的点即为要求的点。 注意:可能有多个联通分支。*/#include#include#include#def... 阅读全文
posted @ 2014-08-18 17:26 HYDhyd 阅读(229) 评论(0) 推荐(0)
摘要:/*次小生成树题意:给你一些路径,现在将一部分路径权值减少后问是否可以替代最小生成树里面的边。解:次小生成树,即将这条边连上,构成一个环求出任意两点路径之间的除了这条边的最大值,比较这个最大值>=这条边,说明可以替换。prime算法次小生成树模板*/#include#include#define N... 阅读全文
posted @ 2014-08-18 15:38 HYDhyd 阅读(148) 评论(0) 推荐(0)
摘要:#include #include using namespace std;typedef struct { long v; long next; long cost;}Edge;typedef struct { long v; long cost;}node;bool... 阅读全文
posted @ 2014-08-18 14:51 HYDhyd 阅读(352) 评论(0) 推荐(0)
摘要:/*刚开始想错了,我以为必须是相邻的点才能连接,原来无线距离可以任意连接对最小生成树理解不够深啊*/#include#include#include#include#define N 600struct node { int u,v;}f[N];struct nodee{ int u,v; d... 阅读全文
posted @ 2014-08-18 11:27 HYDhyd 阅读(183) 评论(0) 推荐(0)
摘要:转载:http://www.cnblogs.com/hxsyl/p/3290832.html 为什么写这个呢?因为那天听到了这个词,属于MST的扩展……最小K度树有空研究。一.理论准备 需要读者事先懂得prime算法,不太了解的请看博主这一篇http://www.cnblogs.co... 阅读全文
posted @ 2014-08-18 09:39 HYDhyd 阅读(136) 评论(0) 推荐(0)
摘要:#include#includeusing namespace std;int map[505][505];int v, e;int prime(){ bool vis[505]; int dist[505]; int i,j,sum=0; for(i=1;imap[k][j]) ... 阅读全文
posted @ 2014-08-16 11:10 HYDhyd 阅读(368) 评论(0) 推荐(0)
摘要:/*只需判断等效边和必选边的个数和n-1的关系即可*/#include#include#define N 110struct node { int u,v,w;}f[N*N*2];int cmp(const void *a,const void*b) {return (*(struct node ... 阅读全文
posted @ 2014-08-14 20:31 HYDhyd 阅读(144) 评论(0) 推荐(0)
摘要:#includeint main(){ __int64 h,a,b,k,j=0; while(scanf("%I64d%I64d%I64d%I64d",&h,&a,&b,&k),h||a||b||k) { printf("Case #%I64d: ",++j); ... 阅读全文
posted @ 2014-08-14 18:26 HYDhyd 阅读(91) 评论(0) 推荐(0)
摘要:/*参考博文:http://hi.baidu.com/dragon_eric123/item/82e259200ece744046996282 有上下界的有源最小流*/#include#include#includeusing namespace std;#define N 300#define... 阅读全文
posted @ 2014-08-13 11:32 HYDhyd 阅读(103) 评论(0) 推荐(0)
摘要:/*坑啊,pe的程序在zoj上原来是wa。题目大意:一个屌丝给m个女神拍照,计划拍照n天,每一天屌丝最多个C个女神拍照,每天拍照数不能超过D张,而且给每个女神i拍照有数量限制[Li,Ri],对于每个女神n天的拍照总和不能超过Gi,如果有解求屌丝最多能拍多少张照,并求每天给对应女神拍多少张照;否则输出... 阅读全文
posted @ 2014-08-12 20:00 HYDhyd 阅读(112) 评论(0) 推荐(0)
摘要:#include#include#include#includeusing namespace std;typedef struct node{ int x,y; bool operatorma; mapf,ff; node e; int n,m,i,j,k,t,id,idd... 阅读全文
posted @ 2014-08-12 17:29 HYDhyd 阅读(306) 评论(0) 推荐(0)
摘要:模板类型的题具体参考国家集训队论文:http://wenku.baidu.com/view/0f3b691c59eef8c75fbfb35c.html参考博客:http://blog.csdn.net/qq172108805/article/details/7783010#include#inclu... 阅读全文
posted @ 2014-08-11 17:32 HYDhyd 阅读(137) 评论(0) 推荐(0)
摘要:/*最大权闭合图模板类型的题,考验对知识概念的理解。题意:现在要辞退一部分员工,辞退每一个员工可以的到一部分利益(可以是负的),并且辞退员工,必须辞退他的下属,求最大利益和辞退的最小人数。最大权闭合图模板类型。求出最大权后沿着源点s,dfs到的点就为最小的人数。证明/*转载:利用一个经典的trick... 阅读全文
posted @ 2014-08-10 15:24 HYDhyd 阅读(113) 评论(0) 推荐(0)
摘要:#pragma comment(linker, "/STACK:1024000000,1024000000") 阅读全文
posted @ 2014-08-10 15:16 HYDhyd 阅读(545) 评论(0) 推荐(0)
摘要:/*最大权闭合图;题意:一些城市需要建路需要一些公司来负责,每个公司需要交一定的税,每条路需要给公司一定的花费,还有一个限制条件,假如说公司a建立了a-b,公司b建立了b-c那么选择公司a 那么必须选择公司b。现在要求最大收益.解:设置一个源点和汇点,将选每个公司的收益和算出来,如果为正值和源点相连... 阅读全文
posted @ 2014-08-10 13:05 HYDhyd 阅读(147) 评论(0) 推荐(0)
摘要:/*对于本题题意很简单关键在于求杨辉三角时的二项式是没有用到优化,导致超时。对于第n行的二项式的第i个可有第i-1个乘于一个数处于一个数得到,要用到大数,java比较方便。假如n=6,i=4;C(n,i)=C(n,i-1)*(n-i+1)/i;*/import java.io.*;import ja... 阅读全文
posted @ 2014-08-09 17:32 HYDhyd 阅读(153) 评论(0) 推荐(0)
摘要:[网络流]最大权闭合图(转载)来自:http://hi.baidu.com/%C6%AE%BB%A8%C4%EA%B4%FA/blog/item/45d4bb1765e7044721a4e960.html以下内容参考 胡伯涛 《最小割模型在信息学竞赛中的应用》,感谢他为我们提供这么优秀的论文。看不懂... 阅读全文
posted @ 2014-08-07 10:37 HYDhyd 阅读(135) 评论(0) 推荐(0)
摘要:/*刚开始不会写,最大点权独立集神马都不知道,在潘神的指导下终于做出来,灰常感谢ps;和方格取数差不多奇偶建图,对于D必割点权为0,对于.必然不割点权为inf。然后和方格取数差不多的建图.--.||E权值为2,,.||E--D权值为0.最大点权独立集=sum-最小点权覆盖。*/#include#in... 阅读全文
posted @ 2014-08-06 21:07 HYDhyd 阅读(223) 评论(0) 推荐(0)
摘要:/*分奇偶为二部图,s与奇建图,t与偶建图,权值为当前数的值,如果遇到必取的权值置为inf。奇偶建边为相邻的权值为2*(x&y);所有数的值-最小点全覆盖。置为inf意为不能割掉。奇偶边权意为可以割掉相邻的。*/#include#include#includeusing namespace std;... 阅读全文
posted @ 2014-08-06 20:01 HYDhyd 阅读(163) 评论(0) 推荐(0)
摘要:转载:http://blog.csdn.net/cold__v__moon/article/details/7924269/*这道题和方格取数2相似,是在方格取数2的基础上的变形。方格取数2解法: 由题意知对于每一个方格,有选与不选,显然是二分的最大独立集,先求最小点权覆盖(它的补集恰好 是最... 阅读全文
posted @ 2014-08-06 19:19 HYDhyd 阅读(103) 评论(0) 推荐(0)
摘要:/*最大点权独立集=sum-最小点权覆盖*/#include#include#includeusing namespace std;#define inf 0x3fffffff#define ll __int64#define N 3000struct node{ ll u,v,w,nex... 阅读全文
posted @ 2014-08-06 17:50 HYDhyd 阅读(149) 评论(0) 推荐(0)
摘要:转载:http://yzmduncan.iteye.com/blog/1149057 二分图最小点覆盖和最大独立集都可以转化为最大匹配求解。在这个基础上,把每个点赋予一个非负的权值,这两个问题就转化为:二分图最小点权覆盖和二分图最大点权独立集。 二分图最小点权覆盖 从x或者y集合... 阅读全文
posted @ 2014-08-06 16:45 HYDhyd 阅读(312) 评论(0) 推荐(0)
摘要:/*最小K路径覆盖的模型,用费用流或者KM算法解决,构造二部图,X部有N*M个节点,源点向X部每个节点连一条边,流量1,费用0,Y部有N*M个节点,每个节点向汇点连一条边,流量1,费用0,如果X部的节点x可以在一步之内到达Y部的节点y,那么就连边x->y,费用为从x格子到y格子的花费能量减去得到的能... 阅读全文
posted @ 2014-08-05 11:33 HYDhyd 阅读(170) 评论(0) 推荐(0)
摘要:int dis[N],pre[N],head[N],visit[N],yong;void init() {memset(head,-1,sizeof(head));yong=0;}void build(int u,int v,int w,int f) { bian[yong].u=u; bian[y... 阅读全文
posted @ 2014-08-04 17:22 HYDhyd 阅读(136) 评论(0) 推荐(0)
摘要:/*两个约束条件求最短路,用优先队列*/#include#include#includeusing namespace std;#define N 110struct node {int u,v,w,f,next;}bian[N*N*4];int head[N],yong,money;void i... 阅读全文
posted @ 2014-08-04 11:41 HYDhyd 阅读(135) 评论(0) 推荐(0)
摘要:/* 题意 :有一些边权值为1和0,判断是否存在一个生成树使得他的总权值为一个斐波那契数。 解法:建立一个最小生成树向里面加权值为1的边替换为0的边,保证原来的联通。因为权值为1,可直接求出最大生成树和最小生成树。 判断他们中间是否有斐波那契数即可,当然要先判断是否可以构成一个生成树。 这个... 阅读全文
posted @ 2014-08-02 20:17 HYDhyd 阅读(386) 评论(0) 推荐(0)
摘要:/*关于最小生成树的等效边,就是讲两个相同的集合连接在一起 先建立一个任意最小生成树,这条边分开的两个子树的节点最大的一个和为A,sum为最小生成树的权值和,B为sum-当前边的权值 不断枚举最小生成树中的边找最优值即可。*/#include#include#include#include#de... 阅读全文
posted @ 2014-08-02 18:28 HYDhyd 阅读(159) 评论(0) 推荐(0)