codeforces 713C
2016-09-29 16:42
204 查看
题意:就是把一个数列变成严格递增的数列 求最小花费
思路:直接考虑结果的整个数列 必然存在那么几个数 他是从始至终 都没有变过 那么假设有一些数会受到这个数影响 比如一个数ai不变 如果aj 是受ai影响 那么就会消耗
abs(ai-i-aj+j) 那么我把每一个ai-i设为一个基准线 那么dp[ai-i]就是当前基准线花费最小的情况 既可获得答案
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <vector>
using namespace std;
#define N 3005
#define LL long long
int a
;
int b
;
int c
;
int cnt,tot;
LL dp
;
LL s
;
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
c[cnt++]=a[i]-i;
}
sort(c,c+cnt);
for(int i=1;i<=n;i++)
{
for(int j=0;j<cnt;j++)
{
dp[i][j]=s[j]+abs(a[i]-i-c[j]);
}
s[0]=dp[i][0];
for(int j=1;j<cnt;j++)
{
s[j]=min(dp[i][j],s[j-1]);
}
}
printf("%lld\n",s[cnt-1]);
return 0;
}
思路:直接考虑结果的整个数列 必然存在那么几个数 他是从始至终 都没有变过 那么假设有一些数会受到这个数影响 比如一个数ai不变 如果aj 是受ai影响 那么就会消耗
abs(ai-i-aj+j) 那么我把每一个ai-i设为一个基准线 那么dp[ai-i]就是当前基准线花费最小的情况 既可获得答案
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <vector>
using namespace std;
#define N 3005
#define LL long long
int a
;
int b
;
int c
;
int cnt,tot;
LL dp
;
LL s
;
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
c[cnt++]=a[i]-i;
}
sort(c,c+cnt);
for(int i=1;i<=n;i++)
{
for(int j=0;j<cnt;j++)
{
dp[i][j]=s[j]+abs(a[i]-i-c[j]);
}
s[0]=dp[i][0];
for(int j=1;j<cnt;j++)
{
s[j]=min(dp[i][j],s[j-1]);
}
}
printf("%lld\n",s[cnt-1]);
return 0;
}
相关文章推荐
- CodeForces - 13C/CodeForces - 713C/HihoCoder - 1529 Sequence dp
- [堆与斜率] Codeforces 713C - Sonya and Problem Wihtout a Legend
- POJ3666 Making the Grade & Codeforces 713C
- codeforces 713C(Round #371 Div2 E) Sonya and Problem Wihtout a Legend ★ ★
- Codeforces-713C-Sonya and Problem Wihtout a Legend
- hihocoder#1529 : 不上升序列&&Codeforces-713C:Sonya and Problem Wihtout a Legend(思维)
- 【DP】[CodeForces - 713C]Sonya and Problem Wihtout a Legend
- codeforces 713C(Round #371 Div2 E) Sonya and Problem Wihtout a Legend Dp + 前缀 +离散化
- POJ 3666 + codeforces 713C (dp)
- codeforces 494B Obsessive String
- 【打CF,学算法——一星级】CodeForces 318A (水题)
- Codeforces(653A)
- CodeForces - 505B 图的连同性,多维并查集或用搜索写
- CodeForces - 870B - Maximum of Maximums of Minimums
- Codeforces 509E. Pretty Song
- Codeforces 627B Factory Repairs 【线段树】
- CodeForces 510BFox And Two Dots(dfs)
- Codeforces 745C Hongcow Builds A Nation
- codeforces 213C Relay Race(dp)