自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Heret1c

以梦为马 莫负韶华

  • 博客(44)
  • 收藏
  • 关注

原创 BZOJ1598: [Usaco2008 Mar]牛跑步

题目链接k短路裸题。直接上模板。【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#define N 1005#define M 10005#de

2016-12-29 19:29:51 216

原创 BZOJ1922: [Sdoi2010]大陆争霸

题目链接【分析】Dijkstra,加点时判断,仅当所有控制当前点的点全部达到后才加入。维护两个数组,Rea[i]和Con[i]。分别表示到达该点和控制该点的最短时间。具体细节见代码。【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm>#include <cs

2016-12-29 17:08:42 568

原创 BZOJ2662: [BeiJing wc2012]冻结

题目链接分层图spfa。【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#define N 2555#define M 204005#defin

2016-12-29 15:37:37 264

原创 BZOJ1579: [Usaco2009 Feb]Revamping Trails 道路升级

题目链接【分析】BZOJ2763加强版。。先用spfaT掉了。加优化的dij很快。【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#define N

2016-12-29 15:01:11 667

原创 BZOJ2763: [JLOI2011]飞行路线

题目链接【分析】分层图spfa。 (不要直接建分层图,spfa中用二维数组处理就好了。。偷个懒就T了QnQ)【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm>#include <cstring>#include <cmath>#include <st

2016-12-29 12:11:39 426

原创 BZOJ1295: [SCOI2009]最长距离

题目链接【分析】枚举每一个点,做spfa,dis[i][j]表示当前枚举点到点(i,j)最少移走多少块障碍物。【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm>#include <cstring>#include <cmath>#include <st

2016-12-29 11:10:24 296

原创 BZOJ1491: [NOI2007]社交网络

题目链接Floyd的应用。【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#define N 105#define INF 1000000000

2016-12-29 10:23:08 232

原创 BZOJ1003: [ZJOI2006]物流运输

题目链接暴力n^2枚举两天之间不改变航线的最短路径。然后dp。 虽然我对这个dp的单调性还抱有深深的怀疑。。没有证出来。。(弱啊~)【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm>#include <cstring>#include <cmath>

2016-12-29 09:37:03 284

原创 BZOJ2427: [HAOI2010]软件安装

题目链接【分析】既然相互有依赖关系,那么缩点之后,就得到若干点和森林,建立树根,连向每一个单点和入度为0的点。树形dp。 (注意:对于任意一颗子树,选不了根下面的就都不能选)。(哎。。自己硬是把对的改成错的交了。。)【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algor

2016-12-28 15:09:28 231

原创 BZOJ2730: [HNOI2012]矿场搭建

题目链接【分析】显然在割点建是不划算的。那就一定是在非割点建立出口。 接下来考虑如何最小。对于每一个点双连通分量。若其中有两个或两个以上的割点,则不需要建,因为若其中一个割点坍塌,可以通过另外一个割点进入其它连通分量中的救援出口。若只有一个割点,则只要建一个。若无割点,则需要建两个。【代码】#include <cstdio>#include <iostream>#include <queue>

2016-12-28 14:02:11 390

原创 BZOJ1093: [ZJOI2007]最大半连通子图

题目链接【分析】(题目看了好半天。。但是其实很好懂得。。 缩点+dp找最长链和最长链方案数。还是很好想的。但是需要注意重构图后关于重边的处理。 为什么要去重边呢??这个问题困扰了我半天。注意原题中一句话即可【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm

2016-12-28 11:09:46 243

原创 BZOJ1123: [POI2008]BLO

题目链接【分析】(这种清新脱俗的题面看起来就是爽啊。。) tarjan求割点 把某个割点去掉以后,会出现几个连通块,它们之间不能互相到达 即会分成上面一棵树,下面若干子树 子树之间不互通,所有子树和上面那个树不互通,通过记录树的大小统计答案 另外删去的点和其它点不互通【代码】#include <cstdio>#include <iostream>#include <

2016-12-28 09:20:22 293

原创 BZOJ1589: [Usaco2008 Dec]Trick or Treat on the Farm 采集糖果

题目链接缩点+记忆化【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#define N 1000005#define M 1000005#def

2016-12-27 19:21:13 504

原创 BZOJ2208: [Jsoi2010]连通数

题目链接【分析】刚开始看到这道题感觉挺蠢得。。缩点DAG就好了嘛。很迅速的打完后发现WA掉了。原因很简单,因为直接拓扑排序中dp更新答案会导致重复计算。 然后想办法改进。直接更新答案会重复计算,那如果记录下有那些点已经更新了当前点就可以了。首先想到的就是直接用数组标记。。(那和暴力有什么区别!!?)。虽然暴力好像能过。。但是这显然不是我们想要的解法。 然后发现bitset好像可以完美解决。。但是

2016-12-27 16:39:12 455

原创 BZOJ1927: [Sdoi2010]星际竞速

题目链接【分析】根据提议,类似于最小路径覆盖。不同的只有,对于每个点,可以由任意一个点花费一定代价,直接到达。【建图】拆点。S->x’,流量为1,费用为0。x”–>T,流量为1,费用为0。S–>x”,流量为INF,费用为a[x]。每条边(x,y,z),假设x编号较小,则x’–>y”连边,流量为1,费用为z。【代码】#include <cstdio>#include <iostream>#i

2016-12-24 11:11:11 242

原创 BZOJ1449/2895: [JSOI2009]球队收益

BZOJ1449 BZOJ2895【分析】本题中无论输赢都会获得收益,所以按往常的费用流建图,不好完成。 那么我们先假设每场比赛双方全输,计算“初始答案”,然后对于每一场比赛,一方获胜,计算收益改变量。那么多赢一场,产生的收益为:(C*(w+1)^2+D*(l-1)^2)-(C*w^2+D*l^2)=2w*C-2l*D+C+D。每赢一次,w[i]++,l[i]–。初始答案+费用流值=最终答案。

2016-12-24 10:24:07 294

原创 BZOJ2893: 征服王

题目链接【分析】首先,第一步tarjan缩点还是很容易想到的。 一个点至少要经过一次,所以拆点,连两条边,第一条流量为1,费用为1,第二条流量为INF,费用为0。 连通块之间连边,流量为INF,费用为0。 若块x可作为起点,则由S–>x’连边,流量为INF,费用为0。若可作为终点,则由x”–>T连边,流量为INF,费用为0。 增广次数即为答案。(又是一道把我心态做崩的题。。一开始打成了每条边走一

2016-12-24 09:38:17 321

原创 BZOJ1520: [POI2006]Szk-Schools

题目链接【分析】费用流裸题。。【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#define N 405#define M 80805#def

2016-12-23 16:18:00 286

原创 BZOJ2324: [ZJOI2011]营救皮卡丘

题目链接(很烦,很燥。数组开小了调了我一个半小时。心态崩了)学习一下别人的建图:http://www.cnblogs.com/BLADEVIL/p/3473628.html【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm>#include <cstring

2016-12-23 15:46:04 347

原创 BZOJ1930: [Shoi2003]pacman 吃豆豆

题目链接【分析】很容易想到最大费用最大流。 但是蒟蒻只会打暴力直接被卡掉。。 那就想如何优化。暴力建图中对于每个(x[i]>=x[j]&&y[i]>=y[j])都建了边。那么数据中如果两千个点(i,i)。被卡的没脾气。 然后发现对于i能到j且j能到k,则为了利益最大化,不会直接从i到k。那么就加入这条剪枝。 还要考虑另外一个问题。一个点可能走2次,所以再加入一条边x’–>x”,流量为1,费用

2016-12-23 11:01:18 390

原创 BZOJ【bzoj2661】[BeiJing wc2012]连连看

题目链接【分析】题目要求“消除的数对尽可能多的前提下,得到足够的分数”,那就可以想到最大费用最大流解决。 一个点显然只能用一次,所以要拆点。若对满足题目要求的x,y,只是由x’–>y”的话,就会出现问题:某些点可能会选到两次。这个并没有限制住。 如何解决呢?我们同时也发现,一个点最多被选两次,那么若再从y’–>x”连边,也就相当于将答案扩大两倍。 为什么一定正确呢?每次增广是按增光路径的长度找

2016-12-23 09:39:50 459

原创 BZOJ1061: [Noi2008]志愿者招募

题目链接题解: https://www.byvoid.com/blog/noi-2008-employee/【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm>#include <cstring>#include <cmath>#include <

2016-12-23 09:02:51 204

原创 BZOJ3280: 小R的烦恼

题目链接【分析】(不想看bb的直接略过) 读完题,诶,这和餐巾计划很像。 然后就乱搞乱搞。。画了几张图,把样例混出来了! 很开心的交掉。WA!?我口胡错了么。。回头查,很好。∑ai没有清零。。再交,WA!!?又查。。很好很好,算的流量也没有清零。然后就,A掉了!!!?【建图】拆点,每一天x拆为x’和x”。S向x’连边,流量为ai,费用为0。x”向T连边,流量为ai,费用为0。x’向(x+1)

2016-12-22 19:14:42 316

原创 BZOJ2879: [Noi2012]美食节

题目链接【分析】这题是【BZOJ1070修车】的加强版。 若仍正常建边的话,会T。那就想如何优化。 费用流中每次增广,只增广一条最短的道路,及对应一名厨师做一道菜。而每次又找的最短的,所以倒数第k次一定比倒数第k+1次先找到。得到了这个信息,就可以动态加边来解决了。【建图】S向每种菜品连边,流量为pi,费用为0。令P=∑pi,将厨师拆为m*P个点,分别向T连边,流量为1,费用为0。最开始将

2016-12-22 16:52:16 303

原创 BZOJ1070: [SCOI2007]修车

题目链接【分析】直接做好像不太容易,那先考虑每个人修车对答案的贡献。假设第i个顾客到第j名技术人员修车。只会对第i名顾客和这名顾客之后的在第j名技术人员处修车的顾客造成影响。【建图】这样的话,我们就可以将技术人员拆点,每个技术人员拆为n个点。 假设这是第x个人,那么xi表示第x人修倒数第i辆车。S向每个顾客连边,容量为1,费用为0.技术人员拆成的n*m个点,分别向T连边,容量为1,费用为0.

2016-12-22 15:31:52 278

原创 BZOJ2245: [SDOI2011]工作安排

题目链接【分析】先吐槽:题目读的真的烦。。刚开始理解错了题意算出来答案怎么都不对还不知道哪里错了。。中午回家才想出来。。真的是勺的掺。其实这个题还是很裸的费用流。。看懂题就好。【建图】S向每个产品建边,流量为Ci,费用为0.每个员工向T建Si+1条边,流量为t[i][j]-t[i][j-1],费用为w[i][j]。为了方便,可以直接将t[i][si+1]赋为INF。有关系的产品和员工之间建边,

2016-12-22 14:19:19 279

原创 BZOJ3171: [Tjoi2013]循环格

题目链接【分析】题目可以抽象为,最少修改几个点指向的边,可以使每个点都处于一个简单环中。为什么一定是简单环呢?因为很显然每个点出度一定为1,所以所成环一定为简单环。那么这样就好做了。【建图】拆点。 1. 每个点x’向四周的点y”连边,流量为1,若指向的点为原先的方向,则费用为0,其他的费用为1。 2. S向每个点x’连边,流量为1,费用为0。 3. 每个点x”向T连边,流量为1,费用为0

2016-12-22 11:29:08 327

原创 BZOJ2424: [HAOI2010]订货

题目链接【分析】。。大水题。。【建模】S到每个点建边,流量为INF,费用为di。表示当月可以通过购买获得产品。每个点到T建边,流量为Ui,费用为0。表示当月需求量为Ui。对于每个小于n的点i,向i+1建边,流量为S,费用为m。代表当月可储存S, 花费为m。费用流值就是答案。【代码】#include <cstdio>#include <iostream>#include <queue>#

2016-12-22 11:00:18 408

原创 BZOJ1221: [HNOI2001] 软件开发

题目链接【分析】和餐巾计划基本相同。【建模】拆点,每个点x拆为x’和x”。S向每个点x’建边,容量为n[i],费用为0。表示当天用了n[i]。每个x”向T建边,容量为n[i],费用为0。表示当天需要n[i]。S向每个点x’’建边,容量为INF,费用为f。表示当天通过购买来获得毛巾。每个点x’向(x+1)’建边,容量为INF,费用为0。表示当天用完的毛巾留到下一天处理。若x+a+1<=n,建

2016-12-22 10:19:23 638

原创 BZOJ1877: [SDOI2009]晨跑

题目链接【分析】一个点只能经过一次?–> 拆点! 两个约束条件,既要天数长又要路程短?–>费用流!然后就将点i拆为点i’和i”。i’–>i”建边,流量为1,费用为0,限制这个点只能走一次。对于每条边 (x,y,z) x”–>y’,流量为1,费用为z,代表该边只能走一次,代价为z。再建立超级源超级汇,S向1’连边,流量为INF,费用为0,n”向T连边,流量为INF,费用为0。流量就为最长周期

2016-12-21 19:51:25 307

原创 BZOJ1834: [ZJOI2010]network 网络扩容

题目链接【分析】刚看到这道题。想了想。哇,我好像会做~ 第一问直接最大流。第二问,在残量网络中重新建图: 对于剩余流量不足K的边(x,y),建新边,流量为K-W[i],费用为C[i]。对于剩余流量不为0的边,建新边,流量为W[i],费用为0。为什么这样建呢? 自己YY的是:每条边再流过的流量最多为K,则对于每条边,可流的流量不需要费用,不足的流量就补齐,有费用。 然而理想很美好,现实很骨感。

2016-12-21 18:17:04 343

原创 BZOJ3996: [TJOI2015]线性代数

题目链接【分析】一开始看到转置我就mengbi了。。哎还是太弱了~ 设A为m×n阶矩阵(即m行n列),第i 行j 列的元素是a(i,j),即:A=a(i,j) 定义A的转置为这样一个n×m阶矩阵B,满足B=a(j,i),即 b (i,j)=a (j,i)(B的第i行第j列元素是A的第j行第i列元素),记A’=B。(有些书记为AT=B,这里T为A的上标) 直观来看,将A的所有元素绕着一

2016-12-21 11:52:07 289

原创 BZOJ1797: [Ahoi2009]Mincut 最小割

题目链接【分析】刚这个题刚了一早上,终于懂了一些。 结论: 在残量网络中跑tarjan后,对每条满流边(u,v): ①(u,v)能够出现在某个最小割集中,当且仅当Belong[u]!=Belong[v]; ②(u,v)必定出现在最小割集中,当且仅当Belong[u]==Belong[S ]且Belong[v]==Belong[T]。为什么呢? 先说②:这代表从S–>u有通路,v–>T有通路

2016-12-21 10:46:33 371

原创 BZOJ3144: [Hnoi2013]切糕

题目链接【题目大意】给定三维矩阵,每一纵轴上取一点,且相邻两纵轴上取得点层数之差不大于D。刚开始也无从下手,我也是看了别人的题解才略懂一二:http://blog.csdn.net/zarxdy34/article/details/45272055接下来说一些我自己的理解。【分析】若这题没有D的限制,那就是每个纵轴上取一个最小值求和。。 加入限制条件后,就需要用最小割的思想来构建出这种相互制约的模

2016-12-20 20:35:42 255

原创 BZOJ1565: [NOI2009]植物大战僵尸

题目链接【题目大意】给定n*m大小的地图,每块有一种植物,每种植物两个功能: ①:吃掉该植物可获得x点收益,可正可负; ②:可保护若干块地上的植物。 任何一个点的植物存活时,它左侧的所有植物都无法被攻击。 求最大获利值。【分析】由题意易知,想获得某点的植物的收益,可能有先决条件并且该条件必须满足,即为最大权闭合图。 但此题有特殊的情况:环。当出现环时,环上任意一点都不可

2016-12-20 15:38:51 337

原创 BZOJ3158: 千钧一发

题目链接【分析】某两样物品之间若满足某些条件则无法同时获取,显然最小割。 这个题其实和BZOJ3275几乎相同。。。【建图】我刚开始蠢蠢的做法,还是拆点,对于点x,S向x’连边,流量b[i],x”向T连边,流量为b[i],对于每一对不能同时取得点i,j,连边i’–>j”,j’–>i”,流量均为INF。答案=(∑b[i]*2-最小割)/2。看完大神的做法,简直觉得自己low爆了。 可以证明,

2016-12-20 12:06:50 1273

原创 BZOJ1324: Exca王者之剑

题目链接【分析】很容易发现,若可以移动,则每次不会选择原地不动。所以,偶数秒时,拿走宝石,四周的消失,奇数秒时,移动到没有宝石的格子。即相邻格子最终无法同时取到。所以就是方格取数问题,最小割解决。【建图】黑白染色,S向黑格连边,流量为点权值;白格向T连边,流量为点权值;黑格向四周白格连边,流量INF;【代码】#include <cstdio>#include <iostream>#inc

2016-12-20 11:32:04 383

原创 BZOJ2561: 最小生成树

题目链接【分析】刚开始可能难以下手,先只考虑最小生成树。 要使新加的边【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#define N 2000

2016-12-20 10:55:54 445

原创 BZOJ1532: [POI2005]Kos-Dicing

题目链接【分析】二分网络流,一眼题。自己蠢蠢的开小数组贡献两次WA~【建图】二分答案S向每场比赛连边,容量1;每场比赛向参赛双方连边,容量1;每个人向T连边,容量mid(二分值);【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm>#includ

2016-12-20 09:55:04 388

原创 BZOJ2127: happiness

题目链接同BZOJ3894。。。 具体见BZOJ3894【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#define N 50005#defi

2016-12-19 20:50:28 362

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除