CF 1013E Hills——隔项转移的DP】的更多相关文章

题目:http://codeforces.com/contest/1013/problem/E 设 dp[ i ][ j ][ 0/1 ] 表示前 i 个位置,有 j 个山峰,第 i 个位置不是/是山峰的最小代价. dp[ i ][ j ][ 0 ] 可以从 dp[ i-1 ][ j ][ 0/1 ] 转移,从 1 转移的话要调整成 a[ i ] <= a[ i-1 ] ,因为  i-1 是山峰,所以它的高度一定还是原高度 a[ i-1 ],从 0 转移没有要求. dp[ i ][ j ][ 1…
这是一道DP题...我居然有那么半个小时思考非DP解决方案,实在是太弱了. 题意:给您若干山,您可以花费1代价削去1高度,求有k个山峰时的最小代价. 输出k = 1 ~ (n + 1) >> 1的答案. 这最后一个直接限制了我的DP思路...后来发现,DP本来就存了这些答案的..毒瘤. 状态表示是f[i][j][0/1],表示前i座山有j个山峰,自己是不是山峰. 比较奇特的是f[i][j][1]要从f[i - 2][j - 1][0/1]转移过来,自然少不了一些奇奇怪怪的特判... #incl…
题面: 传送门 思路: 看到题目,第一思路是贪心,但是我很快就否决掉了(其实分类贪心也可以做) 然后就想,贪心不能解决的状态缺失,是否可以用dp来解决呢? 事实证明是可以的 我们设dp[i][j]表示第i天,还剩j*100积分的时候,最小花费的现金 有转移:dp[i][j]=min(dp[i-1][k]+cost[i]-(k-j)*100)(k=j+1...min(30,j+cost[i]/100) 最后再dp[i][j]=min(dp[i][j],dp[i-1][j-cost[i]/1000]…
题目 传送门:QWQ 分析 dp基础题. $ dp[i][j] $表示前i个数分成j组的最大和. 转移显然. 吐槽:做cf题全靠洛谷翻译苟活. 代码 #include <bits/stdc++.h> using namespace std; typedef long long ll; ; ll dp[maxn][maxn], sum[maxn], a[maxn]; ll Sum(];} int main(){ int n,m,k; scanf("%d%d%d",&n…
Zxr960115 is owner of a large farm. He feeds m cute cats and employs p feeders. There's a straight road across the farm and n hills along the road, numbered from 1 to n from left to right. The distance between hill i and (i - 1) is di meters. The fee…
题意不说 应该这辈子都不会忘记了... 这是我人生中做的最SB的一道DP题. 真的打的我心态崩了.... 可是竟然被我调出来了..... 也是没谁了... 我们设\(F[i][j][S]\)表示到第\(i\)层,然后放了\(j\)个三角形,四个方向是否可以继续拓展的状态为\(S\). 然后分十五种情况进行转移. 每种转移里面再分类讨论. 然后数了数,总共有37种转移方式... 于是就是7k的代码.... #include <iostream> #include <cstring>…
题目链接 CF 633 F. The Chocolate Spree 题解 维护子数答案 子数直径 子数最远点 单子数最长直径 (最长的 最远点+一条链) 讨论转移 代码 #include<vector> #include<cstdio> #include<algorithm> #define gc getchar() #define pc putchar #define int long long inline int read() { int x = 0,f = 1…
题目 传送门:QWQ 分析 用$ dp[i][j] $表示用i个节点,有多少深度小于等于j的二叉树. 答案是$ dp[n][n] - dp[n][h-1] $ 转移时枚举左子树的节点数量,就可以知道右子树的节点数量.不断相乘加到$ dp[i][j] $上. 代码 #include <bits/stdc++.h> #define debug(a) cerr<<(#a)<<" = "<<a<<endl; #define debug…
D. Bag of mice time limit per test 2 seconds memory limit per test 256 megabytes Promblem description   The dragon and the princess are arguing about what to do on the New Year's Eve. The dragon suggests flying to the mountains to watch fairies danci…
题目传送门 题解: dp[ l ][ r ][ k ] 代表的是[l, r]这段区间内, 前面有k-1个连续的和s[l]相同且连续的字符传进来的最大值. solve( l, r, k) 代表的是处理 区间[L, R],  正在处理 [L, R]这个区间, 前面有k-1个连续的和s[l]相同且连续的字符. 转移状态: dp[l][r][k] = a[k] + solve(l+1,r,1). 在 l 这个位置切断连续字符. dp[l][r][k] = solve( l+1, i-1, 1) + so…