自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 codevs1378 选课-树形dp

传送门题目大意:自行参考题解:简直就是《金明的预算方案》的加强版QwQ这个题神就神在,我们可以把一颗子树看作一个物品,只不过这个物品的体积和价值不固定。由于这个题福利子树的体积=子树的大小。所以可以认为子树的价值是一个关于子树大小的函数。这样就强行把它想象成一个背包来做。只不过不是处同意以上分配固定的体积,而是转移的时候还要枚举分配给第i颗子树多大的体积。如果就这么

2017-05-26 22:06:51 398

原创 vijos1476 旅游规划-动态规划

传送门题解:我是这么做的,首先第一遍求出每个点向下的不相交的最长链和次长链,这样两条链拼起来就是就是过这个点(不包含他的父亲的情况下)的最长链。在这些最长链中取max就可以得到直径。然后一个点在直径上,要么他本身就在已经求出的最长链上(就是从这个点出发的最长+次长链=直径长度),要么如果这个点在某一条直径的某条链上(即这个点向父亲方向延伸的最长+这个点向下的最长=直径长度)

2017-05-26 21:56:40 626

原创 POJ2184 奶牛展览 - 动态规划

传送门题目大意,给定有序二元组{(sn,fn)}求一个子序列使得sigma{si}>=0,sigma{fi}>=0且使得sigma{si+fi}最大。题解:两种做法,一种是ppt上的,就是用dp[n][a]表示考虑了前n组,当前s的和为a时,f的最大值。这个转移显然。但是并不会。借鉴vijos《搭建双塔》这个题,我想的是用dp[n][d]表示前n组种,s-t的差为d时sigma

2017-05-26 21:48:41 464

原创 vijos1426 兴奋剂检查 - 动态规划

传送门题目大意:略。题解:把五位状态用类似进制位的思想压缩成一位即可,注意细节。代码://vijos 1426#include#include#include#define up upppppuuup#define rep(i,s,t) for(int i=s;i<=t;i++)#define per(i,t,s) for(int i=t;i>=s;i--)#define

2017-05-26 21:45:01 341

原创 noip2006 金明的预算方案 - 多重背包

请自行搜索题目。题解:把每个主件和两个附件看成一个组合,只有4种选择方案,大力枚举即可。1A好评。代码://luogu P1064//noip2006提高组第二题 #include#include#include#define list liiiiist#define MAXN 100#define MAXM 33000using namespace std;int

2017-05-26 21:42:13 513

原创 POJ3211 Washing Clothes - 状态优化dp

传送门这个题类似上一个题类似,发现各个颜色独立分别来求。然后发现这个良心的题用时之和是一定的,差越小越好。所以用dp[n][m]表示前n件差为m-sigma{k}的时候是否可行。则找一个离sigma{k}最近的m使得dp[n][m]=true即可。此时返回答案m/2。1A好评。代码://POJ 3211 #include#include#include#incl

2017-05-25 21:54:03 278

原创 vijos1037 搭建双塔-状态优化dp

传送门题目大意:自行参考题解:这个题非常适合初学者思考!!!建议不要看题解,先想一想基本方法,在一步步优化。好我开始说。我们先只考虑“能否达到”的问题(因为一开始我是从ppt上看的,ppt上没有说让你求最大高度)。首先第一眼是不是01背包可行性问题?然后发现这有个问题,就是你并不能保证每个物品最多只用来建了一座塔,想想为啥。然后改成dp[n][m1][m2]表示

2017-05-25 20:11:27 459

原创 [NOI2005]BZOJ1415 聪聪和可可

传送门题解:这个题,开始本着拿50分去写,结果写完了在vijos和tyvj上提交竟然都得了80分而且速度好像都很快,然后调试了一些奇怪的bug(坑),就AC了。事后又想了几分钟才想明白复杂度为什么是对的QwQ我真是太弱辣自己写的正解都不知道QAQ首先,按照题意预处理dist[i][j](就是i,j的距离),to[i][j]表示从i到j下一步要走的编号最小的点。然后dp[s][t

2017-05-21 21:45:25 368

原创 [ZJOI2009]BZOJ1433 假期的宿舍

传送门题解:SB二分图匹配,我会说我提交了五六次么QwQ注意清零和i和i+n(人和本人的床)连边。。#include#include#include#include#include#include#define MAXN 110#define MAXM 20000#define INF INT_MAX#define build_edge(u,v,c) add_

2017-05-21 16:38:16 382

原创 BZOJ3450 Easy-概率与期望-递推

传送门题目大意:给定一个01序列,其中有某些字符未知(记为?),是0或1的概率相等,各50%。序列的值定义为序列中极长的0序列的长度的平方的和。求期望值。解:一看概率题想递推。记f[i]为到第i位,期望值是多少。那么如果第i位是0,那么f[i]=f[i-1]+(第i位是0的贡献)。在f[i-1]的基础上,第i位是0对f[i]的贡献,显然就是(到第i位的极长0序列的长度)^2

2017-05-21 16:18:50 657

原创 BZOJ2134 单选错位

传送门题解:非常简单。第i+1道题作对的概率,是1)第i道题选择了1~a(i+1)中的一个选项,并且作对了i+1题。2)若ai>a(i+1) 第i道题选择了a(i+1)+1~ai中的一个选项并做对了i+1题。显然这部分概率为0。如果ai>a(i+1),那么“第i道题选择了1~a(i+1)中的一个选项”的概率是ai/a(i+1)。否则ai综合起来就是min(ai,a(i+

2017-05-20 12:40:47 580

原创 BZOJ3036-绿豆蛙的归宿-概率与期望-DP

传送门题解:略。printf("%.2f")是四舍五入么QwQ//BZOJ 3036 #include#include#include#include#define MAXN 100010using namespace std;struct node{ int to,val; node(int _to,int _val) { to=_to; val=_val

2017-05-20 12:12:41 402

原创 BZOJ4300 绝世好题

传送门题目大意,给定n,{an},求a的一个最大子序列bn,使得bi&b(i-1)!=0.求最大的|b|题解:显然是DP,状态转移方程显然是dp[n]=max{dp[k]+1},a[n]&a[k]!=0考虑优化,发现和LIS有点类似。LIS有个线段树优化就是暴力的记录最后的数字(显然是最大的)对应的最长的序列是多长,这样离散化一下每次询问前缀最大值。这个题的优化类似,发现a&b

2017-05-19 20:47:01 903

原创 [AHOI2009] BZOJ2431 逆序对数列-动态规划-前缀和优化

传送门题目大意:求逆序对数为k的长为n的排列有多少?n,k题解:这显然是个DP(废话)而且dp[n][k]表示长为n逆序对数为k的方案数。而且状态转移显然要从dp[n-1][...]推过来。考虑如果把n插入到1~(n-1)的某个逆序对数为x的排列的第p个数的后面,那么会新产生(n-1)-(p+1)+1=n-p-1对新的逆序对,其中0因此如果当前状态dp[n][k],那么

2017-05-19 19:40:48 693

原创 [SDOI2016] BZOJ4602 齿轮-dfs-带权并查集-数论逆元-质因数分解

传送门题解:总结几种做法,并指出其中的优劣;主要是两种算法,一种是暴力dfs,另一种是并查集。事实上这种“每条边都考虑”大概都可以用上述两种办法处理,并查集复杂度略高,但是其实近乎线性。暴力dfs就是,建一张无向图(不能是有向的),然后对于每个联通块,第一个元素设为1,然后通过第一个元素,算出其它元素的值,然后对于点x,以及边(x,y),如果y也访问过了,就判断一下通过

2017-05-19 18:24:58 512

原创 [ZJOI2009]BZOJ1412 狼和羊的故事-最小割

传送门题目大意:自行参考题解:SB最小割任意两个相邻格子之间连边容量为1,a[i][j]=1的(i,j)和s相连,=2和t相连,这两个容量都是正无穷。跑最小割即可。//BZOJ 1412 //ZJOI 2009 #include#include#include#include#include#include#define MAXN 11000#define

2017-05-17 20:22:30 345

原创 BZOJ1458 士兵占领-最大流

传送门题目大意:自行参考题解:首先一看方格图最值问题就是网络流(尽管我是知道了网络流才做的QwQ)肯定是对每一行建一排点,每一列建一排点,建成一个二分图。显然行和列连边容量为1.首先注意到要求最小值,发现最小割没办法处理(因为从s对每一行的连边割去是没有意义的,因为可能只“割去”一部分)然后注意到,如果s和每一行连边的容量表示“最多/最少能放多少个士兵的时候”,这就是个有上

2017-05-17 19:11:11 370

原创 BZOJ1671 骑士-bfs

传送门题目大意:自行参考题解:暴力搜索,把每个点拆成“有灌木”和“没灌木”两个点,bfs一下即可。代码://BZOJ1671#include#include#include#include#define MAXN 1100#define MAXM 1100#define inrange(x,y) (1<=(x)&&(x)<=n&&1<=(y)&&(y)<=m)#de

2017-05-16 21:18:16 413

原创 [JLOI2768]冠军调查 BZOJ2768-最小割

传送门题目和之前SHOI2007的善意的投票一模一样,源代码提交上去就能AC代码://BZOJ1934 SHOI2007//BZOJ2768 JLOI2010#include#include#include#include#include#include#define MAXN 1000#define MAXM 200000#define INF INT_MAX#de

2017-05-15 20:01:14 411

原创 CTSC2014 BZOJ3555 企鹅QQ-哈希

题目链接:传送门题目大意:自行参考题目题解:我可能什么也不会做了QwQ哈希一遍,枚举不一样的是哪一位,把这一位减去,然后排个序,扫一遍即可直接用unsigned long long自然溢出即可不会被卡2333代码://CTSC 2014//BZOJ 3555#include#include#include#include#define ull unsigned

2017-05-15 13:43:01 411

原创 [NOI2015] BZOJ4195 程序自动分析-离散化-并查集

传送门:右转进入题目题目大意:给定n个式子形如xi=xj或者xi!=xj。问是否可能?首先这个题数据范围大,先离散化一下。然后发现输入顺序不影响答案,所以先考虑等号,就是并查集维护一下即可。对于不等号,如果find出来是在同一个集合里就是NO并退出。最后输出YES。水题……QwQ//NOI 2015//BZOJ 4195#include#include#inc

2017-05-13 14:43:20 459

原创 BZOJ3774 最优选择-最小割

题目链接:传送门题目大意:自行参考题解:这个题也非常简单首先黑白染色,以白色连S(S=0),黑色连T(T=2*m*n+1),容量为A。对于每个点P(i,j)=(x-1)*m+y新建点C(i,j)=P(i,j)+m*n。以P(i,j)是白色的为例,其相邻的点Q(i',j')是黑色的。建边(P,C,B),(C,Q,INF)。answer=sigma(B)-最小割代码

2017-05-13 12:32:40 476

原创 [AHOI2006] BZOJ1266 上学路线route-图论-最短路树-最小割

题目链接:传送门题目大意:自行参考题解:首先,观察得知肯定要先求一个最短路(这不是废话么)然后可以求出最短路网(就是在s到某个点x的某一条最短路上的边的集合)其中最短路网上的边(u,v,w)满足dist[u]+w=dist[v]。然后,如果你割掉的不是最短路网上的边,那么显然无论割多少都不会影响答案(因为你总是只沿着最短路网上的边走),所以只考虑这些边。如果你割了一些最短路

2017-05-13 10:34:49 571

原创 BZOJ2039 人员雇佣-最小割

题目链接:传送门题目大意:自行参考解:这么SB题读错意思了,然后不停的输出0……QwQ建边(S,x,Ax),(x,y,Exy)(y,x,Exy),(x,T,sigma(Exi))。ans=sigma(sigma(Eij))-最小割代码://BZOJ 2039#include#include#include#include#include#include#d

2017-05-13 09:20:45 402

原创 Codeforces Round #412 (Div.2) ABC

A.Is it rated?解:跑两遍for,第一遍如果有a!=b那么输出rated并退出。第二遍如果有a[i]否则输出maybe话说没读懂题……B.T-Shirt Hunt解:也没读懂。暴力即可,先看次数=0可不可以,然后x+=100看x和x-50行不行(x-100,x-150等就不用看了因为已经看过了),不行就继续x+=100。。。随便看许多次即可,发现答案

2017-05-12 20:55:45 379

原创 BZOJ1585 Earthquake Damage 2 地震伤害 - 最小割

题目链接:传送门题目大意:自行参考原题我承认这个题如果不告诉我是最小割我是想不到的QwQ这个题如果知道了是最小割就非常显然了:S=1,T=2n+1,对每个点x拆成x和x2=x+n,对于图上的每一条边(u,v),建边(u2,v,INF),(v2,u,INF)。对于报告的点u,建边(u,u2,INF),(u2,T,INF)。对于其它不是1的点u,建边(u,u2,1)对于

2017-05-12 15:33:09 491

原创 [SHOI2007]BZOJ1934 Vote善意的投票-最小割

题目链接:传送门题目大意:请自行参考原题题解:我承认如果不告诉我这是个最小割我是想不到的QWQ一个同学i的意见是x如果x=1就建边(S,i,1)否则建边(i,T,1)。如果xy是朋友就建边(x,y,INF)&(y,x,INF)。最小割就是答案(割掉某一边表示违背初始意愿)代码://BZOJ1934//SHOI2007 #include#include#include

2017-05-12 15:12:36 445

原创 BZOJ3438 小M的作物-最小割

题目链接:右转进入题目题目大意:自行参考题解:同土地划分//BZOJ 3834 #include#include#include#include#include#include#define MAXN 100000#define MAXM 5000000#define INF INT_MAX#define build_edge(u,v,c) add_edge(u,

2017-05-12 15:04:10 1294

原创 BZOJ3894文理分科-最小割

题目链接:右转进入题目题目大意:自行参考题解:和上一个“土地划分”一样。代码://BZOJ 3511 #include#include#include#include#include#include#define MAXN 60000#define MAXM 1000000#define INF INT_MAX#define build_edge(u,v,c) a

2017-05-12 14:48:54 322

原创 BZOJ3511 土地划分-最小割

各种retle也真是不想说什么了这种类型的最小割模板题大全集题目链接:右转进入题目题目大意:请自行参考原题解:对第i个城市建点C=i,对第i条边两端点X和Y建点A=i+n和B=i+n+m,建源点S=0,汇点T=n+2*m+1。建边:(S,C,VA),(C,T,VB),(S,A,EA),(B,T,EB),(A,X,INF),(A,Y,INF),(X,B,INF),(Y,B,I

2017-05-12 14:15:53 686

原创 [ZJOI2007]BZOJ1060时态同步-贪心

题目链接:右转进入题目题目大意:请自行参考原题解:贪心。很明显最后每个叶节点的到达时间应该是一开始的到叶节点的时间的最大值。所以每个点增加的时间之和是确定的。越靠近根,使用一次增加的贡献就越大(相当于子树+1),所以贪心即可。代码://BZOJ 1060//ZJOI 2007#include#include#include#include#include#defi

2017-05-12 13:31:41 320

原创 [NOI2006]最大获利 BZOJ1497 - 最小割

题目链接:右转进入题目可能我不适合做NOI的题迄今为止做NOI的题有一半都是MLE 23333M的范围看小了,不停地RE建边:(S,中转站,p),(中转站A&B,用户群,inf),(用户群,T,C)跑一边最小割。所有用户群的获利之和减去最小割的值就是答案。代码:#include#include#include#include#include#defin

2017-05-11 16:59:58 315

原创 BZOJ3158 千钧一发-最小割

题目链接:右转进入题目和[Number]这道题几乎一模一样。不多解释代码就是随便改了改//BZOJ3275 #include#include#include#include#include#include#define INF INT_MAX#define MAXN 1010#define MAXM 3000000#define ull long longus

2017-05-11 16:22:31 364

原创 BZOJ3275 Number-最小割

题目链接:右转进入题目这个题有一部非常好的转化。首先一眼看出这是一个带权最大独立团的问题。所以想到网络流但是网络流里面学的带权最大独立团问题必须要求是二分图啊怎么办!我承认我没有想到怎么二分QwQ真是太弱辣!发现两个奇数不满足a^2+b^2=c^2的条件(需要一点数学知识),两个偶数不满足gcd(a,b)=1的条件。所以分别把奇数和偶数看作两排点即可。如果两个不能同

2017-05-11 16:11:36 430

原创 BZOJ2132 圈地计划-最小割

题目链接:右转进入题目题目大意:自行参考原题解:非常简单,限制有:不能同时有A和B,相邻的点同时A(或B)不能相连所以显然要黑白染色(就是把相邻的点染成不同的两种颜色,这样检出两派点来)左面的点x建(s,x,a),(x,t,b)右边的点y建(s,y,b),(y,t,a)相邻的点x,y建(x,y,c).(y,x,c)。每加一条边就ans+=此边边权最后ans-=最

2017-05-11 15:19:22 436

原创 BZOJ2127 happiness-最小割

题目链接:右转进入题目题目大意:请自行参考原题解:最小割经典题,有一种计算边权的方法并不会。直接建图:新建S表示文科,T表示理科。对于每个同学X,建立(S,X,X同学学习文科的喜悦度),(X,T,X同学学习理科的喜悦度)对于每对相邻的同学X和Y,其共同学习某文科的喜悦度为C,建立(S,新加一个节点,C),(新加的那个节点,X,无穷大),(新加的那个节点,Y,无穷大)

2017-05-11 13:30:02 339

原创 [CEOI2008] BZOJ 1391 order-最小割

题目链接:右转进入题目题目大意:请自行参考原题。解:SB最小割竟然还卡常卡内存QwQ第一遍MLE,第二遍TLE我也真是醉了。从s向机器连边,容量为购买价格从机器向任务连边,容量为租用价格从任务向t连边,容量为收益。统计出收益之和tot,跑一边网络流flow,tot-flow就是答案。这个题不需要开long long。代码:#include#include

2017-05-11 10:37:01 427

原创 POI2010 BZOJ2079 Guilds - 结论题

题目链接:右转进入题目题目大意:请自行阅读原题解:和cf风格类似的题,就是这种思路题。不难发现如果两个点是联通的,那么两个点都会满足条件。(因为发现这个点不涂色是不划算的,只要两个点涂上不同的颜色即可)所以任务变为图中是否有孤立的点。随便怎么判一下即可。这个题没有自环,如果有的话还需要特判一下。代码:#include#include#define MAXN 20

2017-05-11 09:35:18 508

原创 HDU 2089 不要62-数位DP-学习笔记

吐槽这个题各种特判!简直比后缀数组还难写!(尽管还未写过后缀数组……)所幸1A了……要不调试都懒得调试时间复杂度是O(logN),以10为底,这意味着复杂度近乎O(1)……题目链接:右转进入题目题目大意:给定[l,r],问其中有多少个数字不包含4和连在一起的62?很明显就是数位DP嘛为了学习数位DP,我们先看一个简单题:给定[l,r],问其中有多少个数字?学长我

2017-05-07 16:51:40 382

原创 Codeforces Round #411 (Div.2) ABCD

A.大意:给定一个区间[L,R],求一个d>1,使得满足L垃圾题被hack了……【逃显然如果L!=R,那么2不会比其它答案差(想想看为什么),否则L=R,任意输出L的一个因数即可(其实就是直接输出L)。这个题如果加强为输出最小的解,那么就在L=R时输出L的最小非1因数即可。B.题目大意:用a,b,c三种字符构造一个长为n的串,使得没有一个长度为3的回文字串,且用最少的c。1这个

2017-05-05 11:02:39 462

空空如也

空空如也

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

TA关注的人

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