0分,求调。样例都对
查看原帖
0分,求调。样例都对
1457770
Neo_Hou楼主2024/10/10 13:46
#include <bits/stdc++.h>
using namespace std;
const int N = 1e4 + 10;
struct Number {
	string pre;
	int sum;
} dp[N];
int n, a[N];
int main() {
	cin >> n;
	for (int i = 1; i <= n; i++)	cin >> a[i];
	dp[1].pre = char(a[1] + '0');
	dp[1].sum = a[1];
	for (int i = 2; i <= n; i++) {	
		int pos = 1;
		for (int j = 1; j < i; j++) {
			if (a[i] > a[j] && dp[j].pre.size() > dp[pos].pre.size() && dp[i].pre.size() < dp[j].pre.size() + 1) {
				pos = j;
			}
		}
		dp[i].pre = dp[pos].pre + char(a[i] + '0');
		dp[i].sum = dp[pos].sum + a[i];
	}
	for (int i = 1; i <= n; i++)	cout << dp[i].sum << " ";
	return 0;
} 

2024/10/10 13:46
加载中...