线性DP
qianyri
这个作者很懒,什么都没留下…
展开
-
Lutece 樱花坡道上的初逢 最长上升子序列
Lutece 樱花坡道上的初逢线性DP+二分单调栈优化状态转移方程: #include<bits/stdc++.h>using namespace std;const int MAX=2*1e5+5;int dp[MAX],a[MAX],q[MAX],R;int find_(int x){ int l=0,r=R; while(l<r) ...原创 2018-08-18 19:04:36 · 255 阅读 · 0 评论 -
2018ICPC网络赛焦作K Transport Ship 二进制优化DP
2018ICPC网络赛焦作K Transport Ship利用二进制只做有效操作#include<bits/stdc++.h>using namespace std;const int MAX=1e4+1;const long long MOD=1e9+7;int v[21],c[21],t,n,m,s;long long dp[MAX];int main(){...原创 2018-09-16 18:01:55 · 296 阅读 · 0 评论 -
POJ2279 Mr. Young's Picture Permutations 线性DP
POJ2279 Mr. Young's Picture Permutations给定一个三角形,将n个身高不同的人按照左低右高、前低后高的排列,且行列都满足递增条件,求组成这样的三角形的个数dp[a][b][c][d][e] 表示第1排a人2排b人3排c人4排d人5排e人的方案数,每次加人的可行方案都是在原有队形轮廓上#include<stdio.h>#include&...原创 2018-10-14 13:37:47 · 391 阅读 · 0 评论 -
codeforce612 E. Wet Shark and Blocks 矩阵快速幂加速DP
codeforce612 E. Wet Shark and Blocks有b个块,每个块中有相同的n个元素,在每个块中取1个元素,使这b个数所组成的b位整数%x==k,求此方法数在第一个块中取a,a'=a%x,第二个块中一个元素与a'所组成的数为b=a'*10+b,b'=b%x以此类推,最终可得到模最后几位得到k的状态转移方程:类似邻接矩阵的n次方,某个点的值表示达到这个点的方案数...原创 2018-10-21 14:06:15 · 217 阅读 · 0 评论 -
codeforce404 D. Minesweeper 1D DP递推
给定一个一维矩阵,其中包含‘1’、‘2’、‘0’、‘*’、‘?’,扫雷小游戏——1表示左右有一个雷,2表示左右都有雷,0表示左右都没有雷,*表示雷,?表示未知,求其中有多少种可能的情况,若该图自相矛盾也输出0表示档期位置为L,当前位置若是雷则为1,否则为0,下一位置若是雷则为1,否为0递推时需要判断:根据不同情况分类讨论#include<bits/stdc++.h>us...原创 2018-10-21 14:15:33 · 267 阅读 · 0 评论 -
ZOJ4027 Sequence Swapping 线性DP
ZOJ4027 Sequence Swapping给定一个括号序列,仅有'()'时左右括号可以相互交换,每个括号都有自己的价值a[i],每次交换费用为a[i]*a[i+1];求最高的费用每个‘(’括号只能与右边相邻的‘)’交换位置,表示第i个左括号到达j位置的最大费用等于第i个左括号到达位置j的费用+位置j右边的最大的#include<bits/stdc++.h&g...原创 2018-10-23 21:16:28 · 397 阅读 · 0 评论