自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Oxer的专栏

新博客 -> https://oxer11.github.io/

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

原创 【bzoj4200】[Noi2015]小园丁与老司机 dp+有上下界的网络流

1、以y为第一关键字,x为第二关键字排序2、对于y相同的点,处理出从一个点a只横着走走到b最多经过多少棵树,记作num[a][b]3、DP,dp[i]表示走到第i个点的最多走过多少棵树,g[i]表示第i棵树是从哪棵树走过来的4、输出方案5、按照最优方案连边6、建图最小流这题细节太多了!!!建图的方法我是学PoPoQQQ大爷的,先正着dp一遍,再倒着dp一遍。

2016-02-29 20:01:21 1546

原创 【bzoj3698】XWW的难题 有上下界的网络流

源点S向每一行连一条容量为(a[i][n],a[i][n]+1)的边每一列向汇点T连一条容量为(a[n][i],a[n][i]+1)的边行i向列j连一条容量为(a[i][j],a[i][j]+1)的边求最大流#include#include#include#include#include#include#define maxn 210#define max

2016-02-28 20:13:49 953

原创 【bzoj2561】最小生成树 最小割

L可能在最小生成树上就是小于L的边不能让u和v联通那就是最小割了#include#include#include#include#include#include#define maxn 20010#define maxm 400010#define inf 1000000000using namespace std;struct yts{ int

2016-02-28 18:53:01 415

原创 【bzoj3876】[Ahoi2014]支线剧情 有上下界的费用流

还要回去重学一遍上下界网络流。最小费用最大流?每条边(x,y)源点S向y连一条容量为1,费用为边权的边x向y连一条容量为inf,费用为边权的边每个点xx向1连一条容量为inf,费用为0的边x向T连一条容量为x的出度,费用为0的边就是把原来上下界网络流的建图方法改了一下#include#include#include#include#inclu

2016-02-28 16:10:51 808

原创 【bzoj4104】[Thu Summer Camp 2015]解密运算 乱搞

这种题就是要多想一想首先每个数给了我们两个信息,这个数是什么,以这个数后面的第一个数为开头的字符串的排名首先0的位置告诉了我们第一个数排第几而第一个数的位置又告诉了第二个数排第几依此类推那么怎么找到正确的排名呢?其实我们只需要考虑首字母相同的字符串的大小比较咦,首字母相同是不是就比较它们后面的字符串的大小关系就可以了,那么怎么比较呢?我们发现其实原本就已经给出来了呀

2016-02-27 15:55:51 1306

原创 【bzoj2502】清理雪道 有上下界的网络流

发现了一种不错的最小流求法。有源汇的最小流源点S向每个点连一条容量为(0,inf)的边每个点向汇点T连一条容量为(0,inf)的边原图的每条边变成容量为(1,inf)的边最小流求法:二分一个答案,每次在S到T间连一条容量为(0,x)的边判断是否可行#include#include#include#include#include#include#d

2016-02-27 11:14:30 710 2

原创 【bzoj2055】80人环游世界 有上下界的费用流

对有上下界的网络流理解的还不够。有上下界的网络流其实是无源无汇的有上下界的最小费用最大流(好像是吧?无源无汇是什么意思来着?)每个人可以从任意一个点出发,每个点正好v个人超级源点S,超级汇点T源点s向每个地点连一条容量为inf费用为0的边每个地点拆成两个点,连一条上下界为v费用为0的边超级源点S向源点s连一条容量为m费用为0的边(表示s只能流出m的流量)剩下的边随便

2016-02-26 11:42:50 1321

原创 【bzoj4276】[ONTAK2015]Bajtman i Okrągły Robin 费用流+线段树优化建图

假设全部被盗,然后最大费用最大流源点S向每个贼连一条容量为1费用为c[i]的边每个点向汇点T连一条容量为1费用为0的边每个贼相对应的区间连一条容量为1费用为0的边m为区间数点数n+m边数n+m+n*m线段树优化连边对区间建线段树,父亲节点向儿子节点连一条容量为inf费用为0的边叶子节点向汇点T连一条容量为1费用为0的边每个贼向对应的线段树节点连接

2016-02-25 17:47:40 1314

原创 【bzoj2597】[Wc2007]剪刀石头布 费用流

不错的题。ans=n*(n-1)*(n-2)/6-d[i]*(d[i]-1)/2d[i]表示第i个人胜场次数d[i]每增加1,ans减少d[i]源点S向每个点连n-1条容量为1的边,费用分别为0、1、……n-2每条边对应的点向汇点T连一条容量为1,费用为0的边每个点向从自己连出的边连一条容量为1,费用为0的边最小费用最大流方案数就是看一条边是否满流,满流就是选,否则

2016-02-25 13:57:47 741

原创 【bzoj3308】九月的咖啡店 费用流

这种题还是要先找问题的某些性质才能做结论:1、一个数中最多有两个质数2、两个质数一个小于根n,一个大于根n建二分图源点S向小于根n的质数连一条容量为1费用为0的边大于根n的质数向汇点T连一条容量为1费用为0的边小于根n的质数a向大于根n的质数b连一条容量为1费用为Vab-Va-Vb的边Va表示单独选a的最大收益=a^(lgn/lga)Vb表示单独选b的最

2016-02-25 09:05:59 1152

原创 【bzoj2802】[Poi2012]Warehouse Store 贪心+堆

贪心题真的好难呀!!!按顺序枚举每个人前面的方案在保证答案最大的前提下,库存尽量大考虑新加进来的一个人,如果它买不到,看一看它前面选的有没有比它大的,如果有的话,把那个换成这个,答案不变,但库存变大了。#include#include#include#include#include#include#include#define maxn 250010

2016-02-25 07:44:18 761

原创 【bzoj2097】[Usaco2010 Dec]Exercise 奶牛健美操 二分答案+树形dp+贪心

二分答案把原来的树分成S+1棵树,每棵树的直径小于等于ans贪心树形dp,计算一下每个点向下的最长链如果加上这棵子树就大于ans了,那么就割掉对于每个节点,把所有的子节点的最长链长度拿出来排序每次如果最长和次长相加>ans,那么就删掉最长复杂度O(nlog^2n)#include#include#include#include#include#

2016-02-24 19:00:56 856

原创 【bzoj3910】火车 LCA+并查集

不错的题。LCA+并查集每一个节点记录一个f[i]表示它到根的路径上第一个没经过的城市初始如果它是要访问的则f[i]=i,否则f[i]=fa[i]每次从一个点开始走到下一个点,求出LCA,计算出路径然后分别从两个点开始向上跳,直到深度小于LCA,把每次跳到的每个节点设置为访问过#include#include#include#include#includ

2016-02-24 14:14:14 604

原创 【bzoj3613】[Heoi2014]南园满地堆轻絮 二分答案

二分答案后,贪心做。每个数对应一个区间,每次取能取到的最小的数,如果取不到了,就无解。#include#include#include#include#include#include#define maxn 50001000using namespace std;int a[maxn];int n,mod,ans;long long sa,sb,sc,sd;

2016-02-24 13:30:05 785

原创 【bzoj1570】[JSOI2008]Blue Mary的旅行 最大流

反正我自己肯定想不出来。Popoqqq大爷的题解:http://blog.csdn.net/popoqqq/article/details/44095061#include#include#include#include#include#include#define maxn 10010#define maxm 1000010#define inf 10000000

2016-02-24 11:48:19 971

原创 【bzoj3504】[Cqoi2014]危桥 最大流

最后那个小WA点确实是个坑。最大流判断?性质:往返方案是从起点走到终点然后按原路返回源点S向a1、b1连一条容量为an、bn的边a2、b2向汇点T连一条容量为an、bn的边对于原图的边,普通的边对应连一条容量为inf的边危桥对应连一条容量为1的边最大流=an+bn的话可行※但有可能a1到达b2的流也算进去所以,交换一下b1和b2再跑一遍因为如果a1能到达

2016-02-24 10:12:40 908

原创 【bzoj2039】[2009国家集训队]employ人员雇佣 最小割

刚开始读错题了,把题目想简单了,看了一下Popoqqq大爷的题解。最小割假设全部雇佣i向汇点T连一条容量为ai的边对于利润(i,j)源点S向i和j分别连一条容量为eij的边i和j之间连一条容量为2eij的边答案为e的和-ans如果雇佣两个,则不用割掉如果只雇佣一个,则要割掉2eij如果两个都不雇佣,则割掉2eij#include#include

2016-02-23 18:12:47 649

原创 【bzoj2127】happiness 最小割

hzwer的题解太难想了,于是还是写个容易想的吧。最小割与S联通表示选0(文),与T联通表示选1(理)源点S向每个同学x连一条容量为aij的边每个同学x向汇点T连一条容量为bij的边对于同时为1的收益,向汇点T连一条容量为价值的边对应的点x向收益连一条容量为inf的边对于同时为0的收益,源点S向连一条容量为价值的边收益向对应的点x连一条容量为inf的边点

2016-02-23 16:08:32 666

原创 【bzoj3218】 a + b Problem 最小割+主席树

好题!!!最小割正常做法与S联通表示白色,与T联通表示黑色每个点i拆成两个点,i和i'源点S向i连一条容量为wi的边i向汇点T连一条容量为bi的边i'向i连一条容量为p的边所有满足条件的j向i'连一条容量为inf的边(因为条件是或,所以要这样建图)但是边数太多了!!!!线段树优化连边?(自己YY的)对原序列建主席树,我们发现每个点的区间其实对应着主席

2016-02-23 14:15:10 520

原创 【bzoj1266】[AHOI2006]上学路线route 最小割+floyd

不难。最小割点1到点n的所有最短路全都不连通先floyd建出最短路图最短路图如果边(i,j),满足f[1][i]+t+f[j][n]=f[1][n],则其在最短路图上对于最短路图上的每一条边,对应连一条容量为c的边建边写错了!!!幸好及时发现,不然还又是一上午。#include#include#include#include#include#i

2016-02-23 10:03:21 467

原创 【bzoj2400】Spoj 839 Optimal Marks 最小割

好题!!!最小割按位做枚举每一位一个点与S联通表示这个点选0,与T联通表示这个点选1如果这个点为0,那么源点S向这个点连一条容量为inf的边如果这个点为1,那么这个点向汇点T连一条容量为inf的边每条边对应连一条容量为1的边考虑点权的话非常巧妙,本来两个条件应该是费用流的?但是可以通过一些技巧用最小割来实现把原来的边容量放大10000倍如果一个点不和S直

2016-02-23 09:21:39 1079

原创 【bzoj2929】[Poi1999]洞穴攀行 最大流

题目翻译有问题。应该是与1和n联通的边只能走一次,其他的随便走。源点S向1直接到达的点连一条容量为1的边直接到达n的点向汇点T连一条容量为1的边其他边变成容量为inf的边最大流即为答案#include#include#include#include#include#include#define maxn 210#define maxm 100010

2016-02-23 08:35:39 557

原创 【bzoj1324】Exca王者之剑 最小割

不考虑走的过程,只考虑最终结果考虑每个点选或不选选了一个点,则不能选周围的4个点除此之外,好像没有别的限制了。问题变成了方格取数黑白染色源点S向黑点连一条容量为权值的边白点向汇点T连一条容量为权值的边一个点向周围的点连一条容量为inf的边总费用-最大流即为答案#include#include#include#include#include

2016-02-22 13:23:05 452

原创 【bzoj1305】[CQOI2009]dance跳舞 最大流+二分答案

二分答案每个点拆成两个点x,x'每个男生x向x'连一条容量为k的边每个女生y'向y连一条容量为k的边源点S向每个男生连一条容量为ans的边每个女生向汇点T连一条容量为ans的边对于男生x和女生y,如果互相喜欢,则x向y连一条容量为1的边如果不互相喜欢,则x’向y'连一条容量为1的边若最大流为n*ans则可行,否则不可行点数4n+2边数(4n+n^2)

2016-02-21 21:24:33 528

原创 【bzoj3438】小M的作物 最小割

貌似应该有两种建图方法,另外一种是基于最大权闭合子图的。一个种子和S联通表示种在A,和T联通表示重在B源点S向第i个种子连一条流量为bi的边第i个种子向汇点T连一条流量为ai的边每个收益i拆成两个点i1、i2,分别表示全部种在A和全部种在B每个收益i2向对应种子连一条流量为inf的边源点S向每个收益i2连一条流量为c2i的边对应种子向每个收益i1连一条流量为inf的边

2016-02-21 15:58:52 1156

原创 【bzoj1458】士兵占领 最大流

转化一下就可以了。用的最少——不用的最多num1[i]表示第i行有多少个没有障碍的格子num2[i]表示第i列有多少个没有障碍的格子源点S向第i行连一条容量为num1[i]-l[i]的边第i列向汇点T连一条容量为num2[i]-c[i]的边如果第i行第j列没有障碍,则从第i行向第j列连一条容量为1的边sum-最大流即为答案sum=∑num1[i]#i

2016-02-21 15:22:31 950

原创 【bzoj2744】[HEOI2012]朋友圈 二分图匹配

算是一道好题了吧,竟然自己想出来了。首先如果是一般图的最大团,那么肯定是不可做,所以这道题的条件一定有什么性质。仔细一看,对于A国,我们分成奇数和偶数两类点,我们发现边全都是在两类点之间的,同类点之间没有边。这不是一个二分图嘛?二分图的最大团?嘿嘿嘿,最大为2吧。再看B国,同样的做法,但是我们发现同类点之间两两有边。貌似有一个性质,二分图的最大独立集等于它补图的最大团(一般图适

2016-02-17 10:08:48 1811 3

原创 【bzoj1433】[ZJOI2009]假期的宿舍 二分图匹配

总之,按照要求连边就对了。裸的最大匹配。#include#include#include#include#include#include#define maxn 110using namespace std;int a[maxn][maxn],lk[maxn];int b[maxn],c[maxn];bool vis[maxn];int n,m,cnt,ans

2016-02-16 11:00:31 1073 1

原创 【bzoj3889】[Usaco2015 Jan]Cow Routing 最短路

双关键字最短路,最近好颓废呀!!!#include#include#include#include#include#include#define inf 10000000000000000#define maxn 1010using namespace std;int b[maxn][maxn],d[maxn],q[maxn],c[maxn];long long

2016-02-13 22:10:06 792

原创 【bzoj1295】[SCOI2009]最长距离 最短路

貌似不难?枚举两个点,计算一下两个点最少去掉多少个方块,这个最短路就可以做了。#include#include#include#include#include#include#define inf 1000000000#define maxn 910using namespace std;int dx[4]={0,1,0,-1};int dy[4]={1,0,-

2016-02-13 21:45:55 895

原创 【bzoj2100】[Usaco2010 Dec]Apple Delivery 最短路

最短路裸题,不加优化spfa过不去,写了个dijkstra#include#include#include#include#include#include#include#define inf 2000000000#define pa pair#define maxn 100010#define maxm 400010using namespace std;

2016-02-13 21:20:23 718

原创 【bzoj2019】[Usaco2009 Nov]找工作 最短路

一开始还想拆个点建图,后来发现直接把边权+d就可以了,最后记得判一判最长路。#include#include#include#include#include#include#define inf 1000000000#define maxn 1010using namespace std;int head[maxn],next[maxn],to[maxn],len

2016-02-13 21:04:15 657

原创 【bzoj1596】[Usaco2008 Jan]电话网络 树形dp

基础的树形dpf[x][0/1/2]表示选x/不选x x被控制/x不被控制的最小代价f[x][0]=1+sigma{min(f[x][0],f[x][1],f[x][2])}f[x][1]=sigma{min(f[y][0],f[y][1])}-max{min(f[y][0],f[y][1])-f[y][0]} f[x][2]=sigma{f[y][1]}#includ

2016-02-13 20:42:47 565

原创 【bzoj1003】[ZJOI2006]物流运输trans 最短路+dp

非常容易的dp,一开始竟然还卡了一下。dp[i]表示到第i天的最小花费dp[i]=min{dp[j]+cost[j+1][i]*(i-j)+k} (0cost[i][j]表示从第i天到第j天的最短路,预处理即可。#include#include#include#include#include#include#define inf 1000000000usin

2016-02-13 16:12:31 2247

原创 【bzoj2118】墨墨的等式 最短路建模

这么经典的题竟然拖到现在才做。首先求出mn=min{ai},若x能被凑出,则x+mn也能被凑出。建mn个点,dis[i]分别表示模mn意义下余i的能凑出的数最小为多少。对于每一个ai,从x向(x+ai)%mn连一条边权为ai的边。求最短路,则最后求得dis[i],计算一下就可以了。#include#include#include#include#include

2016-02-12 20:54:40 1423

原创 【bzoj1922】[Sdoi2010]大陆争霸 最短路变形

比较不错的题,表示一开始硬要拿SPFA做,结果发现不能拆成两步做。必须要用dijkstra,一个点的真实时间就是最短路和子节点的真实时间的最大值,每次把真实时间入堆,边做最短路,边做最长路?!#include#include#include#include#include#include#include#define inf 1000000000#define ma

2016-02-12 20:22:43 1035

原创 【bzoj1663】[Usaco2006 Open]赶集 dp

题目标签是最短路?一开始没明白必须直接走是什么意思?好吧,是我脑残。按时间排序之后,傻逼dpf[i]=max{f[j]+1} (t[j]+a[j][i]#include#include#include#include#include#include#define maxn 410using namespace std;struct yts{ int x,

2016-02-11 20:08:30 640

原创 【bzoj2834】回家的路 最短路

真是脑子不够用了。把图分成两层,一层是横着进的,一层是竖着进的,然后建边最短路就可以了。#include#include#include#include#include#include#define maxn 200010#define maxm 400010#define inf 1000000000000000llusing namespace std;

2016-02-11 19:45:31 1053

原创 【bzoj1731】[Usaco2005 dec]Layout 排队布局 差分约束

差分约束的裸题,一开始没有看见“奶牛排在队伍中的顺序和它们的编号是相同的”这句话,所以不知道怎么处理。最大距离——最短路记第i头牛的位置为didi>=di-1i向i-1连一条权值为0的边两头牛有好感(i>j)di-djdj+L>=dij向i连一条权值为L的边两头牛反感(i>j)di-dj>=Ddi-D>=dji向j连一条权值为-D的边规定d1=0

2016-02-11 15:44:22 1051

原创 【bzoj3373】[Usaco2004 Mar]Lying Livestock 说谎的牲畜 差分约束

就当是我刚学差分约束吧,最裸的题目。枚举每一头牛,然后反向!!!这头牛说的边,跑最短路,如果没有负环,那么ans++如果i大于j,那么xi>=xj+1,即xi-1>=xj,所以i向j连一条边权为-1的边。注意,说谎,是要反向,而不是去掉!!!#include#include#include#include#include#include#define max

2016-02-11 14:47:55 763

空空如也

空空如也

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

TA关注的人

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