08 2014 档案
摘要:题意:塔防。给1--n,给出m个塔,每个塔有攻击力,给出k个怪兽的位子和血量,问有几只可以到达n点。今天刚刚复习了树状数组,就碰到这个题,区间更新、区间求和类型。第三类树状数组可以斩。注意一下大数即可。#include#include#includeusing namespace std;__int...
阅读全文
摘要:题意如标题所述, 先无向图缩点,统计出每个bcc权,建新图,然后一遍dfs生成树,标记出每个点(新图)以及其子孙的权值之和。这样之后就可以dfs2来枚举边(原图的桥),更新最小即可。 调试了半天!原来是建老图时候链式前向星和新图的vector>俩种存图搞乱了!!!不可原谅!哎!愚蠢!愚不可及!提...
阅读全文
摘要:Go Deeper题意:确定一个0/1数组(size:n)使得满足最多的条件数。条件在数组a,b,c给出。吐槽:哎,一水提,还搞了很久!关键是抽象出题目模型(如上的一句话)。以后做二sat:有哪些是点,哪些是条件,分清!,然后注意细节。这次居然因为里面一个小错误:判断有无解的时候,i与i+1是否在一...
阅读全文
摘要:题意:给个有向图,每个人可以投票(可以投很多人,一次一票),但是一个人只能支持一人一次,支持可以传递,自己支持自己不算,被投支持最多的人。开始想到缩点,然后搜索,问题是有一点想错了!以为支持按票数计算,而不是按人数!还各种树形dp/搜索求可以到达边数。。提交WA了。。。又反复读了题目之后才发现。。错...
阅读全文
摘要:题意,从0点出发,遍历所有点,遍历边时候要付出代价,在一个SCC中的边不要付费。求最小费用。有向图缩点(无需建立新图,,n《=50000,建则超时),遍历边,若不在一个SCC中,用一个数组更新记录最小到达该连通分量的最小边权即可。。。边聊天,边1A,哈哈。。。#include#include#inc...
阅读全文
摘要:hdu 3061Battle :一看就是明显的最大权闭合图了,水提。。。。。。SB题也不说边数多少。。。。因为开始时候数组开小了,WA。。。。后来一气之下,开到100W,A了。。hdu3996. gold mine。。看了一下,简单题,几乎裸,不敲了。。#include//Battle#includ...
阅读全文
摘要:hdu3879 base station : 各一个无向图,点的权是负的,边的权是正的。自己建一个子图,使得获利最大。一看,就感觉按最大密度子图的构想:选了边那么连接的俩端点必需选,于是就以边做点,轻轻松松构造了最大权闭合图。简单题。分分钟搞定。hdu3917 :road constructions...
阅读全文
摘要:Caocao's Bridges题意:给个无向图,求出边权最小的桥。一看,直接缩点,若无桥,输出-1,有桥,遍历下边,更新最小。。分分钟搞定,以为IA的。。一交wa。。。坑点:1:若原图不连通,则无须派人去!输出0!; 2:若桥的权是0,则还有派一个人把炸弹拿去,输出1! 3:有重...
阅读全文
摘要:思路一下就上来了,叶子向汇点连边,inf保证不会成为割,跑根到汇点最小割即可。注意无向树双向建边。基础题,分分钟1A:#include#include#include#include#include#includeusing namespace std;const int inf=0x3f3f3f3...
阅读全文
摘要:题意:方格取数,如果取了相邻的数,那么要付出一定代价。(代价为2*(X&Y))(开始用费用流,敲升级版3820,跪。。。) 建图: 对于相邻问题,经典方法:奇偶建立二分图。对于相邻两点连边2*(X&Y),源->X连边,Y->汇连边,权值w为点权。 ans=总点权-最小割:如果割边是源->X,表示x不...
阅读全文
摘要:3081 题意: n个女孩选择没有与自己吵过架的男孩有连边(自己的朋友也算,并查集处理),2分图,有些边,求有几种完美匹配(每次匹配每个点都不重复匹配) 我是建二分图后,每次增广一单位,(一次完美匹配),再修改起点还有终点的边流量,继续增广,直到达不到完美匹配为止。网上很多是用二分做的,我觉得没必要...
阅读全文
摘要:题意:求最大流/一条流量最大的路的流量。(此题HDU上数据水,下面俩种错误的都能过。。。。)思路1;每次增广的时候更新流量,保存最大的那条。 错误性:每次更新,有可能最大的那条流量是前几次已经增广过的(每次是增广多条的),使得最大的那条被分解了。网上有20%代码是这样的。(下面的第数据2,3不过了)...
阅读全文
摘要:题意:N个人去m个星球,给出n个人可以去哪些星球的01矩阵。求是否能满足所有人都去。(n到10万,m#include#include#include#includeusing namespace std;const int inf=0x3f3f3f3f;const int maxv=2000,max...
阅读全文
摘要:此题被誉为神奇最大流,诱惑我去做了下,感觉也是通常的思路。题意:1.用1-9去填,满足所给的行/列和要求(和那个什么游戏差不多。。。)求一种合法方案,输出。如: 一看,直接就建图了,每个点在白色的点中间,由横和=纵和,管理横和的在左边,纵和的点在右边。S->横和点,纵和点到t...
阅读全文
摘要:题意:给一个数列(整数),用一些不相交的区间去覆盖(只能是用端点去覆盖,端点可以交)。而且区间出度相等。求最大区间长度。开始一下就敲了,枚举每个区间长度,判断合法,更新最大。但是后来一看小数,感觉不行,改为二分,后来还是挂了。。。赛后才知道,二分的时候,答案必需要满足单调性啊,这里小的数据不行,大的...
阅读全文
摘要:题意:从s到t,每个点有f值,只能从f值小的到大的,到T后回来,只能从f值大的到 小的,求可行否。往返,其实就是俩条路过去(每个点最多一次),所以想到流量为2,跑最大流,看是否满2,又要每个点最多一次的条件,故每个点拆为2个,都是常用的。注意一下起点的拆点流量为2.#include#include#...
阅读全文
摘要:题意:将n个任务分配为m个机器,给每个任务需要的天数(无需每天连续),和可以在哪些天去做该任务,求是否存在方案。典型的任务(X)----天(Y)二分最大流,(因为这里任务是与天的关系)处理器控制流量,源点向X部点,指需要的天数,任务xi,向可以做的天连,流量1,每个Y部点向汇点连流量为m,表示该天最...
阅读全文
摘要:River Problem题意:一个有向树(河流),只有一个汇点1,每条边只有一个出度。有些河道有污染指数xi,必需要治理,有m段路径,可以去覆盖这些,每被覆盖一次,xi降低响应值。:即 给出一些边必需要覆盖的次数,用m段路径去覆盖,每次覆盖有相应费用,求最小费用。思路:这题被誉为难题,给一个网络流...
阅读全文
摘要:题意:查找这样的子回文字符串(未必连续,但是有从左向右的顺序)个数。简单的区间dp,哎,以为很神奇的东西,其实也是dp,只是参数改为区间,没做过此类型的题,想不到用dp,以后就知道了,若已经知道【0,i】,推【0,i+1】, 显然还要从i+1 处往回找,dp方程也简单:dp[j][i]=(dp[j+...
阅读全文
摘要:思路:先缩点成有向无环图,则必然含有出度为0的点/入度为0的点,因为要使添加的边尽量多,最多最多也就n*(n-1)条减去原来的m条边,这样是一个强连通图,问题转化为最少去掉几条,使图不强连通,原来图中入度的点,若不添加入度,则必然不连通,同理出度为0的也一样,所以,找入度/出度为0的点中, ki(n...
阅读全文
摘要:题意: 给一个矩阵,给出约束:i(0#include#include#include#includeusing namespace std;const int maxv=200;const int maxe=200*200*2+800;const int inf=0x3f3f3f3f;int num...
阅读全文
摘要:题(自)目(己)错(英)综(语)复(太)杂(差),关系理了半小时+翻译才看明白,看明白之后,直接建图,费用流击杀。/简单题。2A:有的地方,可用互通的要建双向边!#include#include#include#include#includeusing namespace std;const int...
阅读全文
摘要:注意:必需先定义,再使用。#include #include using namespace std;#define DIGIT 4 //ËÄλ¸ô¿ª,¼´Íò½øÖÆ#define DEPTH 10000 //Íò½øÖÆ#define MAX 1000type...
阅读全文
摘要:题意,一个矩阵,上面可以横放或者竖着放骨牌(1X2)保证横的与横的不重叠,竖的和竖的不重叠,求拿掉最小的牌,使所有的都不重叠。分析:一看,不重叠就是没有边,拿最少,就是留最多,最大独立集啊!二分图,n+m个-最大流(最大匹配)=ans。简单题。#include#include#include#inc...
阅读全文
摘要:题意,给一个矩阵,告诉你每行和、每列和,并且限制所填数不大于k,问矩阵是否唯一。经典建图不说了,第一次遇到判断最大流唯一性的,学习了:用dfs来判断残网中是否还存在环,若存在,则表明绕这个环走一圈,(流一圈流量),还是最大流保持不变,说明还有解。输出方案就EASY了。WA了一天:第一TLE,因为这题...
阅读全文
浙公网安备 33010602011771号