样例通过
by HairlessVillager @ 2020-09-27 16:45:34
没人吗?
我要下机了,一星期后才能回复
~~但是再过一个星期就要比赛了~~
by HairlessVillager @ 2020-09-27 16:51:02
请把代码发出来
不是每个人都开代码公开
by EDqwq @ 2020-09-27 17:02:19
@[林深时x见鹿](/user/294562) 抱歉!我以为你们的这一题都过了
刚才看了一下,觉着是方程代码写错了
以下是代码:
```cpp
#include <cstdio>
#define M_MAX 105
#define T_MAX 1005
int T, M;
int times[M_MAX];
int values[M_MAX];
int bag[T_MAX][M_MAX];
void readData() {
//freopen("in.txt", "r", stdin);
scanf("%d%d", &T, &M);
T++;
for(int i = 0; i < M; i++) {
scanf("%d%d", &(times[i]), &(values[i]));
}
}
void debug(){
for(int item = 0; item < M; item++) {
for(int time = 0; time < T; time++) {
printf("%d ", bag[time][item]);
}
printf("\n");
}
}
int find() {
for(int item = 0; item < M; item++) {
for(int time = 0; time < T; time++) {
int res = 0;
if(time - 1 >= 0 && bag[time-1][item] > res) {
res = bag[time-1][item];
}
if(time - times[item] >= 0 && item - 1 >= 0
&& bag[time-times[item]][item-1] + values[item] > res) {
res = bag[time-times[item]][item-1] + values[item];
}
bag[time][item] = res;
//printf("%d ", bag[time][item]);
}
//printf("\n");
}
//debug();
return bag[T-1][M-1];
}
int main() {
readData();
printf("%d", find());
return 0;
}
```
by HairlessVillager @ 2020-09-27 17:05:41
你这马蜂太毒瘤了我看不懂
不过建议写一维的:
```cpp
for(int i = 1;i <= n;i ++){
for(int j = m;j >= a[i];j --)
dp[j] = max(dp[j],dp[j - a[i]] + w[i])
```
简单多了
by EDqwq @ 2020-09-27 17:08:00
$\color{purple}\LARGE\text{你这马蜂。。。。}$
by Gsmdog_H @ 2020-10-04 19:43:30