自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 博客迁址啦!

博客迁址啦!新博客地址:Sarlendy欢迎访问!

2018-09-15 21:43:03 297

原创 Luogu P1879 [USACO06NOV]玉米田Corn Fields

题目P1879 [USACO06NOV]玉米田Corn Fields分析状压DP入门题目。 数据规模非常小,非常适合用状压DP。首先把每一行的情况压成一个二进制数,1表示选,0表示不选; 设f[i][j]表示到计算了前i行,第i行状态为j;枚举上一行所有可能的状态,按行转移; 那么状态转移方程显然为:f[i][j]+=f[i−1][k]modPf[i][j]+=f[...

2018-06-16 08:15:12 337

原创 [USACO13NOV]空荡荡的摊位Empty Stalls

题目Luogu P3090 [USACO13NOV]空荡荡的摊位Empty Stalls分析遇到一道思维题,难度不大,记录一下。题意:有很多类牛,每类牛有很多批,同种类的每一批又有相同个数的牛,他们喜欢相同一个位置;每一类的第i批都喜欢 Ai+B 号位置;每一个位置最终只能安放一头牛;牛中意的位置被占领后,它将向后寻找最近的没有被占领的位置进行占领。所有位置是成环的,即...

2018-06-10 11:38:27 466

原创 [HAOI2009]毛毛虫

题目LuoguP3174 [HAOI2009]毛毛虫分析可以想到这是一个树形DP:因为题目要求一条链,并且这条链连同其相邻节点所组成的新树最长,所以这就意味着,选择一个节点后,将选择其所有儿子,并且扩展其中一个儿子。 因此可以得到一个暴力做法:枚举每个点,树形DP,设f[i]表示以i为根节点的最长链长度。 转移方程:f[i]=max{f[v]+son[i]−1|v→i}f[i]...

2018-06-08 18:58:50 451 3

原创 [JLOI2011]飞行路线

题目BZOJ 2763: [JLOI2011]飞行路线分析图上DP。 应当注意,最小花费的航线并不一定是在最短路径上免费尽量多的边而得到的。 为什么呢?设想如果有一条路径,由不多于k条边组成,那么可以通过免费掉所有的边而获得0元的费用;如果恰好此图的最短路有多于k条边组成,那么无论如何也不能免费到0元。 因此,应采用DP:设f[i][j]表示更新到i节点,当前免费了j次的最小...

2018-05-31 18:36:27 444

原创 POJ1904 King's Quest

题目POJ1904 King’s Quest分析题目大意:有n个王子和n个妹子,王子可能会喜欢多个妹子,现在这些王子要跟自己喜欢的妹子结婚。 给出一个可行的婚配方案(完美匹配),要求所有的可行匹配,使得:每个王子与求得方案中的某一个妹子结婚后,其他喜欢这个妹子的王子仍有其他婚配方案。(不可行)思路1:乍一看上去像是二分图匹配。显然,所有妹子与王子都要结婚,没有重婚...

2018-05-29 23:34:22 376

原创 POJ3013 Big Christmas Tree

题目POJ3013 Big Christmas Tree分析题目大意:给定一个计算公式:某条边的边权=其所有子节点的点权和××\times原始边权,以此生成一棵树,求最小边权和。思路:首先描述一下表达式:ans=∑(u,v)subsum[v]⋅cost(u,v)ans=∑(u,v)subsum[v]⋅cost(u,v)ans=\sum_{(u,v)}{subsum[v]...

2018-05-24 19:43:58 204

原创 POJ1679 The Unique MST

题目POJ1679 The Unique MST分析题目大意:求一张图的最小生成树是否唯一,唯一则输出价值,否则输出“Not Unique!”。思路1:求一棵最小生成树,再求一棵次小生成树。两者价值相等则不唯一。思路2:先求一棵最小生成树。依次枚举树里面每一条边,让它不能被使用,新构建一棵生成树。如果不含此边的生成树(即新求出的这棵)也最小,说明不唯一。 ...

2018-05-23 20:45:52 191

原创 [JSOI2010]Group 部落划分 Group

题目BZOJ 1821: [JSOI2010]Group 部落划分 Group分析竟然是一道kruskal……好久都没有看出来。 首先各点之间两两连边构建一张完全图,模拟kruskal从小到大加边; 设初始有n个部落,即每个点各自为一个部落,每加一条边,相当于减少一个部落; 恰好有k个部落时,当前要加上的那条边即为当前最近的两部落间的距离; 由于前面加入的边都不长于当前边,...

2018-05-17 21:59:38 344

原创 [SCOI2009]最长距离

题目BZOJ 1295: [SCOI2009]最长距离分析本来以为是一道DP,想了很久都想不到咋做。于是考虑最短路,发现一些操作。 将有障碍的格子的权值标为1,没有障碍为0; 对于一个起点,跑一遍最长路,寻找dis[i][j]≤tdis[i][j]≤tdis[i][j]≤t的最大长度的(i,j); 格子(i,j)即为距离起点的最远点,求出欧几里得距离; 枚举所有的格子作为起...

2018-05-17 19:52:27 339

原创 [SCOI2005]最大子矩阵

题目BZOJ 1084: [SCOI2005]最大子矩阵分析一眼看上去就是一道DP!想了很久,码出来一个很复杂的做法,而且还错了…… 注意到m<=2,可以利用这个性质: 当m=1时,问题变为求多个子区间使得和最大。这就比较好想了,令f[t][i]表示选到了第i个位置,已经选了t个区间的最大值。得到:f[t][i]=max{f[t][i],f[t−1][j]+sum[j,i...

2018-05-16 21:19:27 314

原创 [NOI2007]社交网络

题目BZOJ1491 [NOI2007]社交网络分析看到数据规模,最先想到的是Floyd,但在统计方案的地方卡住了。浏览了几篇题解,得到了一点启示。 在floyd过程中,枚举k为中转点:如果当前需要更新,那么经过k的最短路条数附初始值为两边(i-k和k-j)的条数之积(乘法原理);如果恰巧当前就是一条最短路,那么此点最短路数加上这一(i,j)的最短路数(乘法原理,类似地)。 可...

2018-05-15 21:23:14 328

原创 [HNOI2005]狡猾的商人

题目BZOJ1202 [HNOI2005]狡猾的商人分析用并查集维护各节点到各自根节点的前缀和。将[x,y]的信息保存在y上,在路径压缩过程中,边压缩边计算前缀和。 值得注意的是,计算[x,y]时应当合并[x-1,y],这样可以方便的判断两段区间是不是相邻组成了一个更大的区间。当这个区间已经有值时,可以直接v[y]-v[x]求出现在加入的这段区间的和,判断是否与现在加入的这段小区...

2018-05-14 19:17:51 230

原创 [HNOI2008]水平可见直线

2018-05-09 19:28:49 506

原创 Luogu P1938 [USACO09NOV]找工就业Job Hunt

题目P1938 [USACO09NOV]找工就业Job Hunt分析题意大概就是找最长路。 可以把每条边的花费看成负数,更新每个点的最长路时加上这个点的点权。如果出现环,那么肯定可以赚无限多的钱。建图时将航线的边权定为花费,没用航线的路线花费就是0了。 由于需要判断是否有环,所以需要用到spfa。代码#include<cstdio>#include&l...

2018-03-25 15:56:08 327

原创 Luogu P1073 最优贸易

题目P1073 最优贸易分析分不清这道题到底是DP还是SPFA…… 显然这道题是要使得买入价格最低,卖出价格最高。跟数列不同的是,图是有访问顺序的。不妨从起点到终点方向找一个最小买入点,从终点往起点反向找一个最大卖出点,两者作差就是最大收益了。这样的好处是不需考虑买入点是否能走到卖出点,因为反向建图找卖出点,就意味着有起点方向的边(如果不理解可以慢慢往下看,下一段有更形象的解释)...

2018-03-24 13:33:09 320

原创 Luogu P2066 机器分配

题目P2066 机器分配分析考虑到为每一个公司分配机器时,需要知道现在还能分配多少机器,即需要知道已分配过的公司共分得多少机器。那么这就是一个动态规划。设f[i][j]表示前i个公司共分配了j台机器。那么可以得到转移方程: f[i][j]=max(f[i][j],f[i−1][j−k]+a[i][k]),k<=jf[i][j]=max(f[i][j],f[i−1][j−k]...

2018-03-20 20:10:59 371

原创 Luogu P2049 魔术棋子

题目 P2049 魔术棋子分析显而易见的暴力做法是,枚举每一条路径,把经过的每一单位的值边乘边取模。每个点可以选择向右或者向下两个方向,所复杂度(2n2n2^n)。 如果使用动态规划,判断某个位置的棋子能否是p来进行转移,得到(n,m)的所有可能。显然可以设f[i][j][p]表示位置(i,j)可否为k。边界条件就是f[1][1][a[1][1]mod k]=truef...

2018-03-10 22:22:48 339

原创 Luogu P1877 [HAOI2012]音量调节

题目 P1877 [HAOI2012]音量调节分析题目的意思大概就是,在一个序列中选择数,使得任何一次选择不小于0,不大于maxLevel,而且每个数要么选择正值(即调高),要么选择负值(即降低)。那么得到了一个暴力的做法,枚举每个值的符号,求最大值。复杂度O(2n2n2^n)。顺着思路往下走,可以联想到背包问题。那么肯定是01背包啦,bool f[i][j]表示在演奏第i首歌时,...

2018-03-10 11:17:06 472

原创 Luogu P2725 邮票 Stamps

题目Luogu P2725 邮票 Stamps分析一眼看到像是一道搜索,枚举可能的邮资,搜是否能用不多于k张邮票拼凑出当前值来。分析一下复杂度,邮资的最大值是所有可贴的地方全贴满最大面值的邮票,也就是max(ai∗k)max(ai∗k)max({a_i*k})=2e6,每个邮资搜索k层,每层n个状态,那么每一次就要搜索nknkn^k次。那么总操作数大概是2e6∗(50200)2e6...

2018-03-08 21:53:39 429

原创 Luogu P2426 删数

题目Luogu P2426 删数分析一眼看上去就是一道区间DP。用f[i][j]表示[i,j]的最大得分,边界条件是f[i][i]=a[i],最终结果是f[1][n]。 用k表示要被删除的区间[i,j]的删除点,意思是删除[i,k]或[k+1,j]的数字,那么被删除的一段(假设是[i,k])可以用题目中的计算方式算得分数(value(i,k)),保留的一段(相应的是[k+1,j]...

2018-03-05 21:58:28 315

原创 NOIP2013加分二叉树

题目设一个n个节点的二叉树tree的中序遍历为(1,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第i个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下: subtree的左子树的加分× subtree的右子树的加分+subtree的根的分数。 若某个子树为空,规定其加分为...

2018-02-19 07:59:49 346

原创 Luogu P1725 琪露诺

题目Luogu P1725 琪露诺分析看上去像一道DP题。用dp[i]表示到达坐标i时的最大冰冻指数,可以得到转移方程: dp[i]=max{dp[k]}+a[i],k∈[i-l,i-r]题目中提到,只要她下一步的位置编号大于N就算到达对岸,因此枚举i时要[l,n+r),因为[0,l]的部分她不可能到达,但[n,n+r)的部分都有可能是到对岸之前的那一步,走到对岸时到...

2018-02-10 19:27:37 456

原创 前缀和与差分

概念公式与推导啥是前缀和?? 前缀和是一个数组的某项下标之前的所有数组元素的和。 通俗的讲,数组中以这个元素为止,向前所有的数的和。在一维内,设前缀和数组为d[],原数组为a[],根据含义我们得到定义式和递推式:d[i]=∑j=0ia[j]d[i]=\sum_{j=0}^i a[j]d[i]=d[i−1]+a[i]d[i]=d[i-1]+a[i] 那么我们在对a[]进行O(n)预

2018-01-05 21:20:36 2659 1

原创 Luogu P1629 邮递员送信

题目Luogu P1629 邮递员送信分析浏览一遍题目,很容易分析出是最短路模型。首先跑一次1号店到其他点的最短路,然后在他返回时从每一个点都跑一次最短路,但在返回过程中我们只利用每个点到1号点的最短路,却要跑(n-1)次,所以显然十分浪费。并且复杂度是O(n*m log n),爆炸。 如何解决这个问题呢? 如果我们把每条边的方向反过来,那么原来每个点到1的最短路就变成了1到每个点的最短路,相当

2017-12-13 21:55:11 387

原创 Luogu P2733 家的范围

题目Luogu P2733 家的范围分析初看这题没有思路,参考了一下题解的思路,于是用了前缀和。 ans表示以(i,j)为右下角的矩形区域内边长为k的正方形是否存在,以此记录整个矩阵内边长为k的正方形的个数。 用d[i][j]预处理出以(i,j)为右下角,(0,0)为左上角的矩形区域内1的个数。仅当该点为原值1,并且从此点向左上延伸的边长为k的正方形中,1的个数与面积(k*k)相等时,ans++

2017-12-12 20:36:31 306

原创 Luogu P2910 寻宝之路

题目Luogu P2910 寻宝之路胡乱分析对于航行序列,跑从每个起点开始到达相应终点的最短路,然后累加得到结果。试着用dijkstra实现,结果70分。70分代码#include<cstdio>#include<queue>#include<cstring>#include<iostream>using namespace std;const int maxn=1002,inf=2147

2017-12-03 11:23:46 433

原创 Luogu P3905 道路重建

题目Luogu P3905 道路重建分析使得修复总长度为最小,即使得两点之间路径为最短。因为AB两点现在没有被连接,所以只要修复最短路径上需要修复的路,即可联通,并且答案最小(这是显然的)。 假定全部道路通畅,跑一遍A到B的最短路,然后将被毁坏的道路边权设为0,再跑一遍最短路。两次所得的B的最短路之差,就是最短路径上需要修复的路的长度。路径上某些边的权变成0后,再得的最短路只会变得更短或者不变(这

2017-11-30 19:56:40 670

空空如也

空空如也

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

TA关注的人

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