随笔分类 - Acm
摘要:题意:有n个点,n-1条边。现在徐福可以让一条边无消耗建立,即魔法边。B表示除魔法边之外的的其他边的消耗值和,A表示这条魔法边相连的2个集合中都选一点,这两点的最大值,现在要求A/B最大。 方法:因为2个值都在变,所以不能贪心。考虑枚举边的情况。由于直接枚举边太多,可以先考虑让B变小,因为A相比来说
阅读全文
摘要:整数划分(四) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 整数划分(四) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 暑假来了,hrdv 又要留学校在参加ACM集训了,集训的生活非常Happy(ps:你懂得),可是他最近遇到了一个难题,让他百思不得其
阅读全文
摘要:c++重载运算符的时候加&或不加: 如果加了&表示引用,说明用的都是同一块内存。如果不加,那么用的就是一份拷贝,即不同的内存。 一般连续操作的时候要加&。 可以重新定义一个对象,然后返回这个对象,这样就不会改变当前对象的值;也可以直接在当前对象 上进行操作,返回*this,这样会改变当前对象的值。
阅读全文
摘要:描述给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。如:[]是匹配的([])[]是匹配的((]是不匹配的([)]是不匹配的
阅读全文
摘要:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1021 设sum[i][j]为从第i为开始,长度为j的区间的值得和。dp[i][j]为从i开始长度为j的区间的最优值。 那么我们分析一下情况: dp[1][1] = 0,dp
阅读全文
摘要:分析题目 发现很多都是重叠的部分。然后dp求解。 用一维来存xor后的值,那么所有的情况都能够表示了。
阅读全文
摘要:题意:有男孩和女孩,男孩之间全部认识,女孩之间全部认识,一部分男孩和女孩认识,现在希望选出一些孩子,这些孩子都相互认识。 方法:正的做不好做,观察他的补图,补图之间无关系的边就是原图有关系的。补图中的独立集不正是相互都没有连边么,反过来说,它们在原图中不正是两两都有连边么。 最小割: 二分匹配:
阅读全文
摘要:题意:有一张图,对于每个点,有出边和入边,现在目的是删除改图的所有边,对于每个点,删除出边的花费Wi-,删除入边的花费Wi+,现在的目的求删去所有边后的花费最小。 建图方法:对于每个点i,拆点为i,i+n,对于入边,从i+n想汇点T连边,值为入边花费;对于出边,从S向i连边,权值为出边花费。m组相连
阅读全文
摘要:二分图大概有一下几个性质: 1.点覆盖集:集合中的点:图G中每一条边的至少有一个顶点在这个集合中; 2.点独立集:集合中的点:任意2个点在图G中都不相邻。 3.路径覆盖:在图中找一些路径(注意是路径不是边!!),这些路径覆盖图中所有的顶点,每个顶点都只与一条路径相关联。 a为覆盖集,b为独立集。 图
阅读全文
摘要:题意:有N个城市,M个公司。现在需要建立交通是获得的利益最大。如果2个公司A,B, A修的路为Xa->Ya,B的路为Xb->Yb,如果Ya==Xb,那么这2个公司有关系。 对于每个公司都有获得的税,和需要付出的价值。求最大能够得到的利润为多少。 分析: 很明显是最小权闭合图。最大获利=总共的值-(付
阅读全文
摘要:基础题。 最小割后,与汇点相连的点都不要,然后从源点出发dfs一遍有多少相连的点即可。
阅读全文
摘要:若a,b 2点能够相连,那么可以得到ci的价值,也就是说a,b是得到c的前提条件,对于每一个点,又有耗费。 对于本题,先求出最多能够得到的利益有多少,最小割=未被 选的用户的收益之和 + 被选择的站点的成本之和,要尽量的小。 分析: 把每个用户和每个站点都看成一个顶点。建立网络,从源点S向每个用户连
阅读全文
摘要:转自:http://www.cnblogs.com/wuyiqi/archive/2012/03/12/2391960.html 性质: 最大权闭合图的权值=原图中权值为正的点的和-最小割; 闭合图:在一个图中,我们选取一些点构成集合,记为V,且集合中的出边(即集合中的点的向外连出的弧),所指向的终
阅读全文
摘要:开始敲了一发线段树,觉得可以暴力一点的过,tle了。后来进行修改,发现了问题。 后来一看大神的做法,由于1<=k<=10,所以对于不同的k,有55个余,找答案的时候只要找不同的k值满足条件的值。 成段更新时,更新全部的树即可。
阅读全文
摘要:一遍的话秩序要dp就好,但是这里要删去点。此题可以转化为最小费用流。开始我想了半天纠结怎么处理到过一次后值变0,看了书之后发现拆点解决了这个问题。 对于点t,拆为t-->t',容量为1,费用为负的矩阵的值,那就解决了只能一次。如果2个点连通,s-->t,就相连,s-->t,s-->t',t'->s'
阅读全文
摘要:这题也可以用km做,我写的代码km比费用流快很多。 最小费用流: km:
阅读全文
摘要:对于最小费用流,基本的思想和最大流类似,不断寻找增广路增广,只是此时还要考虑费用问题。 寻找最大流的方法是从某个可行流出发,找到关于这个流的一条增广路P; 沿着P调整f,对新的可行流又试图寻找关于它的增广路,循环直至不存在增广路为止; 如果f是流量为f1的可行流中费用最小者,而p是关于f的所有增广路
阅读全文
摘要:A*算法超内存。 对于最短路,我们可以维护dis[]数组,来求得最短路,但是此题有次短路,所以定义dis[][2],dis[][0]表示最短路,dis[][1]表示次短路;cnt[][2],cnt[][0]表示最短路条数,cnt[][1]表示次短路条数。 更新时: 如果小于最短路,更新dis[][0
阅读全文
摘要:启发函数:f(x)=g(x)+h(x); g(x)表示初始点到x状态的代价,h(x)表示从x的状态到目标状态的代价的估计值(并不是真实的),实际最小代价<=h(x); 起点s,终点t,x.v=s,x.len=0;然后优先队列中f(x)值最小值出队列,再根据出队列的x.v状态发展下一层。如果出队列时第
阅读全文

浙公网安备 33010602011771号