---------动态规划---------
烧脑的dp
ygmjsjdboy
这个作者很懒,什么都没留下…
展开
-
【DP】【Burnside】【多项式】烷基计数
原本想做烷烃的,但发现烷烃是在烷基基础上想的,所以就咕了题目n个碳的烷基同分异构个数,不考虑立体异构(有根树,且每个节点儿子个数≤\leq≤ 3)题解一.n≤400n \leq 400n≤400LOJ6185O(n3)fiO(n^3)f_iO(n3)fi表示用了iii个的方案数应该没有人和我一样fi=∑fjfkfi−1−j−k(j≤k≤i−1−j−k)f_i=\sum f_jf_kf_{i-1-j-k}(j\leq k\leq i-1-j-k)fi=∑fjfkfi−1−j−k(j原创 2020-07-29 08:25:43 · 351 阅读 · 0 评论 -
【dp】【AC自动机】文本生成器
门记住常见DP+ACM的套路:dpi,jdp_{i,j}dpi,j表示长度i,节点j,可能多加一维表示状态题目长度为m的最少包含一个模式串的文本串的方案数题解AC自动机建好后思考dp转移dpi,j,0/1dp_{i,j,0/1}dpi,j,0/1表示长度为i,状态在j号节点,0/1表示是否含有模式串如果j为终止节点dpi,j,1=∑dpi,k,1+dpi,k,0dp_{i,j,1}=\sum dp_{i,k,1}+dp_{i,k,0}dpi,j,1=∑dpi,k,1+dpi,k,0原创 2020-05-28 21:01:49 · 141 阅读 · 0 评论 -
【轮廓线dp】一双木棋
题目棋盘格中,两人轮流下棋。下的棋必须左面,上面都已经下过棋。每个棋盘格有两个值,分别代表两人下了该点能得到的分数。每个人都想要(己方分数-对方分数)MAX现每个人都采取最优策略,也知道对方要采取最优策略。问先手的(先手分数-对方分数)MAX题解容易知道是DP,状压dps=max(−dpt+vali,j) dp_s=max(-dp_t+val_{i,j})dps=max(−dpt+vali,j)但最困难的是如何压缩状态我首先用的是N位的M进制,每一位表示这一列还剩有多少个格子没下原创 2020-05-16 14:07:55 · 196 阅读 · 0 评论 -
【dp】乌龟棋
Luogu P1541题目:从1点起,用拥有的1,2,3,4牌(消耗)移动,最后到达终点,求经过点的权值最大(包括起点)题解:应该算是一个基础入门题吧,但我还是想写下首先想到的DP:dp[i][s1][s2][s3][s4]表示用了s1张1,s2张2,s3张3,s4张4后到达i点的最大值dp[i][s1][s2][s3][s4]表示用了s1张1,s2张2,s3张3,s4张4后到达i点的...原创 2019-11-07 10:58:00 · 86 阅读 · 0 评论 -
【四边形不等式】Division
HDU 3480题目:将长度为n的数列任意分成m块(可重复选用数字),每块w=(max−min)2w=(max-min)^2w=(max−min)2,求最小∑w\sum w∑w题解 :先排序,没问题吧然后得到fi,j表示选了i块,选到了j位置的最优值f_{i,j}表示选了i块,选到了j位置的最优值fi,j表示选了i块,选到了j位置的最优值fi,j=min(fi,k+wk+1,j)f...原创 2019-10-30 21:31:01 · 120 阅读 · 0 评论 -
NOIP专题复习(10.23)【dp】
一、采药01背包dp[i+u[j]]=max(dp[i]+v[j])dp[i+u[j]]=max(dp[i]+v[j])dp[i+u[j]]=max(dp[i]+v[j])二、开心的金明同上三、摆花dp[i][j]=∑k=i−a[j]idp[k][j−1]dp[i][j]=\sum_{k=i-a[j]}^{i} {dp[k][j-1]}dp[i][j]=∑k=i−a[j]idp[k]...原创 2019-10-23 22:07:18 · 95 阅读 · 0 评论 -
【dp】【斜率优化】【例题】摆渡车
题目:有 nnn 名同学要乘坐摆渡车从人大附中前往人民大学,第 iii 位同学在第tit_iti分钟去 等车。只有一辆摆渡车在工作,但摆渡车容量可以视为无限大。摆渡车从人大附中出发、 把车上的同学送到人民大学、再回到人大附中(去接其他同学),这样往返一趟总共花费mmm 分钟(同学上下车时间忽略不计)。摆渡车要将所有同学都送到人民大学。凯凯很好奇,如果他能任意安排摆渡车出发的时间,那么这些同学...原创 2019-10-10 21:27:34 · 216 阅读 · 0 评论 -
【dp】【单调】道路游戏
题目:很长很长的题目题解:一.O(n3)O(n^3)O(n3)f[i]=f[i−k]+s[i][j]−s[i−k][j−k]+p[j−k]f[i]=f[i-k]+s[i][j]-s[i-k][j-k]+p[j-k]f[i]=f[i−k]+s[i][j]−s[i−k][j−k]+p[j−k]#include<stdio.h>#include<iostream>#...原创 2019-10-10 21:36:27 · 47 阅读 · 0 评论 -
【dp】【斜率优化】土地购买
题目:农夫John准备扩大他的农场,他正在考虑N (1 <= N <= 50,000) 块长方形的土地. 每块土地的长宽满足(1 <= 宽 <= 1,000,000; 1 <= 长 <= 1,000,000). 每块土地的价格是它的面积,但FJ可以同时购买多快土地. 这些土地的价格是它们最大的长乘以它们最大的宽, 但是土地的长宽不能交换. 如果FJ买一块3...原创 2019-10-10 22:04:33 · 201 阅读 · 0 评论