
区间动规
文章平均质量分 66
WerKeyTom_FTD
这个作者很懒,什么都没留下…
展开
-
行政划分
题目大意给定一个凸多边形的N个顶点,你需要把它分成N-2个三角形使得三角形面积的方差最小。N<=50。DP首先求个凸包确定点的次序。 我们很容易推出方差可以表示为和与平方和的表达式,由于和是不变的,我们需要求三角形的平方和的最小值。方差的表达 设f[i,j]表示从凸包的第i个点到第j个点组成的图形(即i到j这段的凸壳加上i与j的连线)分割成若干个三角形的最小平方和。则转移只需枚举i到j的中间点k原创 2016-01-09 15:01:38 · 844 阅读 · 0 评论 -
搬家
题目描述dp把两扇门之间那条链拉出来。 设f[l,r]表示链上的[l,r]都被攻略了的方案数,经典组合数转移。 要预处理链上每个节点延伸出去的子树方案。#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)#define fd(i,a,b) for(i=a;i>=b;i--)using namespac原创 2016-07-15 21:57:28 · 496 阅读 · 0 评论 -
传球70分做法
题目描述 70分n<=1000dp容易看出被攻略的是连续一段。 设dp[l,r,0~1]表示攻略了[l,r],此时球在哪个端点。 我们需要预处理f与g。 f[i]表示从一个结点走至多走到顺时针走i步的位置情况下走到逆时针走1步的位置的概率。 假设顺时针走1步概率为p。 f[i]=1−p+p∗f[i−1]∗f[i]f[i]=1-p+p*f[i-1]*f[i] 1-p的概率直接走到,否则我原创 2016-07-15 22:03:19 · 431 阅读 · 0 评论 -
[CodeM初赛A轮]B
题解设dp f[i1,i2,j1,j2]表示选出A串的[i1,i2]以及B串的[j1,j2]能否组成回文串。 dp转移显然。 但是边界比较麻烦。 考虑先做dp fa[i,j]和fb[i,j]分表表示A串的[i,j]和B串的[i,j]是不是回文串,然后瞎枚举弄出一些f的初值。 回文串完全在一个串中也要判断。 有点坑QAQ 详见代码#include<cstdio>#include<cstr原创 2017-06-18 22:15:17 · 820 阅读 · 1 评论 -
景中人
题目大意n个二维点。 用下边界贴着y=0的面积不超过S的矩阵,最少用多少个覆盖所有点?DP同样的x坐标只保留y最大的,然后对y离散化。 容易发现矩形之间只会有相含关系或相离关系,相交是没有意义的。 然后大力区间dp,f[i,j,k]表示[i,j]区间覆盖所有y坐标>k的最小矩形数。 随便转移。n^4。#include<cstdio>#include<algorithm>#define f原创 2017-07-01 17:26:50 · 614 阅读 · 0 评论 -
[CF480D]Parcels
题目描述http://codeforces.com/contest/480/problem/DDP区间DP是可行的,但是是4*n^2*S,亲测过不了。 然后n^2*S的看这个 http://blog.youkuaiyun.com/keshuai19940722/article/details/40720965 区间DP:#include<cstdio>#include<algorithm>#defin原创 2017-06-11 16:11:06 · 502 阅读 · 0 评论 -
[bzoj4934]kangroo
题目大意有一个园子,里面有n个草丛排成一排,标号1~n,有一个袋鼠,从s出发,每次跳一步跳到一个其他的草丛,经过 每个草丛恰好一次,最终到达t。显然他会跳跃n-1次为了不被人类发现,袋鼠每次跳跃的方向必须与前一次不同, 具体地,如果他现在在now,他是从prev跳跃一次到达now的,然后他跳跃一次到达next,那么如果prev<nowprev<now,就必 须有now<nextnow<next原创 2017-08-17 22:28:15 · 1012 阅读 · 1 评论 -
小J真爱粉交流群
题目大意有数字的n*m网格图,DDD和YJQ在玩游戏。 DDD先把一个小人放在第一行某个格子上。获得该格子分数。 接下来每个时刻,YJQ先在任意上下相邻的格子间建墙,可以建任意个。 DDD移动小人向四相邻的位置走(如果没有墙)。并获得新格子分数(重复走重复获得)。 小人到达最后一行游戏结束,现在DDD的目标是最小化,YJQ的目标是最大化,问得分是多少。做法可以发现,DDD负...原创 2018-05-30 08:43:09 · 841 阅读 · 0 评论