比赛 |
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;
}