比赛 2025暑假集训第一场 评测结果 WWWWWWWWWWWWWWWWWWTT
题目名称 挑战 NPH 最终得分 0
用户昵称 OTTF 运行时间 8.051 s
代码语言 C++ 内存使用 3.67 MiB
提交时间 2025-06-25 09:47:25
显示代码纯文本

#include <cstdio>
#include <cstring>
#include <iostream>

using namespace std;

const int N = 1145;

int t;
int n;
int k;
int nums[N];
int dp[2 * N];

void First () {
	
	freopen ("NPH.in", "r", stdin);
	freopen ("NPH.out", "w", stdout);

	cin >> t;
	
}

void ParseIn () {
	
	cin >> n >> k;
	for (int i = 1; i <= n; i++) {
		cin >> nums[i];
	}
	
}

void CoreCWriteOut () {
	
	if (n == 1) {
		cout << nums[1] * k << endl;
		return;
	}

	memset (dp, 0, sizeof (dp));
	dp[0] = 1;
	long long sum = 0;
	for (int i = 1; ; i++) {
		for (int j = 1; j <= n; j++) {
			if (i - nums[j] >= 0) {
				dp[i % 2000] += dp[(i - nums[j] + 2000) % 2000];
			}
		};
		sum += dp[i % 2000];
		if (sum >= k) {
			cout << i << endl;
			break;
		}
	}
	
}

int main () {
	
	First ();
	for (int i = 1; i <= t; i++) {
		ParseIn ();
		CoreCWriteOut ();
	}
	
	return 0;
}