【DP】[CodeForces - 713C]Sonya and Problem Wihtout a Legend
2016-09-19 13:31
441 查看
题目大意
给你一个序列,每次操作你可以使一个数+1或-1,问最少需要多少次操作能够使这个序列严格递增。分析
严格递增就是要ai+1>=ai+1,我们两边同时减去i−1,就是ai+1−(i+1)>=ai−i我们令bi=ai−i,原问题就等价于使b序列不降,这是一个经典问题。
可以参考poj3666或者cf13C。
大致思想就是最后的序列取值的集合一定属于一开始这个序列的值的集合。
然后O(n2)的DP就可以算出答案。
代码
#include<cstdio> #include<algorithm> #include<cstring> #define MAXN 3000 using namespace std; int r[MAXN+10],a[MAXN+10],n,rcnt; long long f[MAXN+10][MAXN+10]; void Read(int &x){ char c; while(c=getchar(),c!=EOF){ if(c>='0'&&c<='9'){ x=c-'0'; while(c=getchar(),c>='0'&&c<='9') x=x*10+c-'0'; ungetc(c,stdin); return; } } } void read(){ Read(n); int i; for(i=1;i<=n;i++){ Read(a[i]); r[i]=(a[i]-=i); } sort(r+1,r+n+1); rcnt=unique(r+1,r+n+1)-r-1; } void solve(){ int i,j; long long mi; memset(f,0x3f,sizeof f); f[0][1]=0; for(i=1;i<=n;i++){ mi=0x7fffffffffffffffll; for(j=1;j<=rcnt;j++){ mi=min(mi,f[i-1][j]); f[i][j]=mi+abs(r[j]-a[i]); } } mi=0x7fffffffffffffffll; for(j=1;j<=rcnt;j++) mi=min(mi,f [j]); printf("%I64d\n",mi); } int main() { read(); solve(); }
相关文章推荐
- 【CF713C】Sonya and Problem Wihtout a Legend(离散化,DP)
- Codeforces 713C C. Sonya and Problem Wihtout a Legend (经典DP)
- hihocoder#1529 : 不上升序列&&Codeforces-713C:Sonya and Problem Wihtout a Legend(思维)
- 【CF 713C】Sonya and Problem Wihtout a Legend(离散化+dp)<POJ 3666变形>
- codeforces 713C C. Sonya and Problem Wihtout a Legend(dp)(将一个数组变成严格单增数组的最少步骤)
- codeforces 713C C. Sonya and Problem Wihtout a Legend(dp)
- [堆与斜率] Codeforces 713C - Sonya and Problem Wihtout a Legend
- Codeforces-713C-Sonya and Problem Wihtout a Legend
- Codeforces Round #371 (Div. 1) C. Sonya and Problem Wihtout a Legend(贪心+DP)
- Codeforces Round #371 (Div. 2) E. Sonya and Problem Wihtout a Legend(技巧 + 离散化dp)
- Codeforces Round #371 (Div. 2)E. Sonya and Problem Wihtout a Legend[DP 离散化 LIS相关]
- cf 372 div2 E. Sonya and Problem Wihtout a Legend dp
- Codeforces Round #371 (Div. 2) E. Sonya and Problem Wihtout a Legend (DP/LIS变形)
- Codeforces 713 C Sonya and Problem Wihtout a Legend
- 【CodeForces】713 C. Sonya and Problem Wihtout a Legend
- Codeforces_714E:Sonya_and_Problem_Wihtout_a_Legend(DP+想法题)
- 动态规划,离散化(Sonya and Problem Wihtout a Legend,cf 713C)
- cf/Codeforces Round #371 714E - Sonya and Problem Wihtout a Legend - dp +lis
- Codeforces Round #371 C. Sonya and Problem Wihtout a Legend (DP)
- Codeforces Round #371 (Div. 1) C. Sonya and Problem Wihtout a Legend 贪心