跪求debug

P1048 [NOIP2005 普及组] 采药

样例通过
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


|