Codeforces #713C: Sonya and Problem without a Legend 题解

如果做过cf 13C sequence应该马上就能发现这两道题惊人的相似

但是这题要求严格递增,怎么办呢?

于是有一个神奇的做法

对于a[i],将其减去i,得到新数组b,b数组中只要保证不下降,a就能保证严格递增

于是可以上dp代码了

(dp方程可以看13C sequence)

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define x first
#define y second
#define mp make_pair
#define pb push_back
#define LL long long
#define Pair pair
#define LOWBIT(x) x & (-x)
using namespace std;

const int INF=0x7ffffff;

int n;
int a[3048];
vector 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]);
	}
	sort(v.begin(),v.end());
	v.resize(unique(v.begin(),v.end())-v.begin());
	for (j=0;j


你可能感兴趣的:(Codeforces #713C: Sonya and Problem without a Legend 题解)