P5414 [YNOI2019] 排序

Aimeee

事实上每一个数付出了等于自己的值的贡献后,就可以随便动了

那么就是让不动的数在维持不严格不下降后的和最大

(因为那些随便扔啊)

#include<iostream>
#include <algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int t;
int n;
long long Aimee[1001],jdn[1001];
int main(){
	scanf("%d",&t);
	while(t--){
		scanf("%d",&n);
		long long zqh=0,hgz=0;
		for(int i=1;i<=n;++i){
			scanf("%d",&Aimee[i]);
			hgz+=Aimee[i];
			jdn[i]=0;
		}
		for(int i=1;i<=n;++i){
			for(int j=0;j<i;++j){
				if(Aimee[i]>=Aimee[j]){
					jdn[i]=max(jdn[i],jdn[j]+Aimee[i]);
				}
			}
			zqh=max(zqh,jdn[i]);
		}
		cout<<hgz-zqh<<endl;
	}
	return 0;
} 
posted @ 2021-01-10 16:30  Simex  阅读(72)  评论(0编辑  收藏  举报