啊?
查看原帖
啊?
843950
SiberianRoe_楼主2024/7/7 15:30
#include <bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin >> n;
	const int N = n;
	int lis[N],f[N+1],f1[N+1];
	f[0]=0;
	f1[0]=0;
	for(int i = 0;i < n;i++)
		cin >> lis[i];
	for(int i = 1;i <= n;i++)
	{
		int mx = -1145,bj;
		for(int j = 0;j < i;j++)
		{
			if(lis[j-1]<=lis[i-1]||j==0)
			{
				if(f[j]==mx)
					continue;
				mx=max(mx,f[j]);
				bj=f1[j]+lis[i-1];
			}
		} 
		f[i]=mx+1;
		f1[i]=bj;
	}
	for(int i = 1;i <= n;i++)
		cout << f1[i] << ' ';
	return 0;
} 
2024/7/7 15:30
加载中...