最后一个测试点通过不了
查看原帖
最后一个测试点通过不了
1195979
tyiii楼主2024/7/9 22:26
#define  _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
#include <unordered_map>
using namespace std;
int a[10][15], f[10][30], b[10][30];
int main() {
	for (int i = 1; i <= 5; ++i) {
		for (int j = 1; j <= 10; ++j) {
			cin >> a[i][j];
		}
	}
	memset(f, 127, sizeof(f));
	for (int i = 1; i <= 10; ++i) f[1][i] = a[1][i], b[1][i] = i;
	for (int i = 2; i <= 5; ++i) {
		for (int j = 1; j <= 25; ++j) {
			for (int z = 1; z <= 10; ++z) {
				if (j - z > 0) {
					if (f[i][j] > f[i - 1][j - z] + a[i][z]) {
						f[i][j] = f[i - 1][j - z] + a[i][z];
						b[i][j] = z;
					}
				}
			}
		}
	}
	cout << f[5][25] << '\n'; 
	int top = 0, stk[10] = {0}, sum = 25;
	for (int i = 5; i >= 1; --i) {
		stk[++top] = b[i][sum];
		sum = sum - b[i][sum];
	}
	for (int i = top; i; --i) cout << stk[i] << ' ';
	return 0;
}
2024/7/9 22:26
加载中...