如果做过cf 13C sequence应该马上就能发现这两道题惊人的相似
但是这题要求严格递增,怎么办呢?
于是有一个神奇的做法
对于a[i],将其减去i,得到新数组b,b数组中只要保证不下降,a就能保证严格递增
于是可以上dp代码了
(dp方程可以看13C sequence)
#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
#include <cstdlib>
#include <utility>
#include <map>
#include <stack>
#include <set>
#include <vector>
#include <queue>
#include <deque>
#define x first
#define y second
#define mp make_pair
#define pb push_back
#define LL long long
#define Pair pair<int,int>
#define LOWBIT(x) x & (-x)
using namespace std;
const int INF=0x7ffffff;
int n;
int a[3048];
vector<int> v;
LL dp[3048][3048];
inline int myabs(int x)
{
return x>=0?x:-x;
}
int main ()
{
int i,j;
scanf("%d",&n);
for (i=1;i<=n;i++)
{
scanf("%d",&a[i]);
a[i]-=i;
v.pb(a[i

这篇博客介绍了如何解决Codeforces #713C问题,作者通过对比cf 13C sequence,指出两题的相似性。为确保数组a严格递增,文章提出了一个策略:将a[i]减去i,形成新数组b,只要b数组保持不下降,a就能满足条件。博主给出了使用动态规划(dp)的解决方案,并建议参考13C sequence的dp方程。
最低0.47元/天 解锁文章
266

被折叠的 条评论
为什么被折叠?



