求助 WA了6个点 dalao帮忙讲讲qwq

P1048 [NOIP2005 普及组] 采药

@[maodan12345](/user/519384) 您可以参考我的代码 ```cpp #include <bits/stdc++.h> using namespace std; int dp[102][1003]={0}; struct p{ int time; int vol; }a[103]; int main(){ int n,m; cin>>n>>m; for(int i=1;i<=m;i++){ cin>>a[i].time>>a[i].vol; } for(int i=1;i<=m;i++){ for(int j=n;j>=0;j--){ if(a[i].time>j)dp[i][j]=dp[i-1][j]; else dp[i][j]=max(dp[i-1][j],dp[i-1][j-a[i].time]+a[i].vol); } } cout<<dp[m][n]; } ```
by 幽灵特工 @ 2021-08-15 12:36:41


@[maodan12345](/user/519384) 您的代码少计算了j<a[i]的部分,这样会导致以后状态转移时可能会从一个没有被计算过的状态转移
by 幽灵特工 @ 2021-08-15 12:40:08


@[maodan12345](/user/519384) 把您的代码稍微改一改就过了。 具体改动处是,j循环终止条件,和状态转移方程。当a[i]>j的时候要f[i][j]=f[i-1][j]。其它不变 ```cpp #include<bits/stdc++.h> using namespace std; const int N=11000; int a[N]; int w[N]; int f[N][N]; bool digit(char x) { return (x>='0' && x<='9'); } inline int read() { int x=0; int f=1; char ch=getchar(); while(!digit(ch)) { if(ch=='-') { f=-1; } ch=getchar(); } while(digit(ch)) { x=x*10+ch-'0'; ch=getchar(); } return x*f; } int main() { int T; T=read(); int n; n=read(); for(int i=1;i<=n;i++) { a[i]=read(); w[i]=read(); } int ans=-1; for(int i=1;i<=n;i++) { for(int j=T;j>=0;j--) { if(a[i]>j)f[i][j]=f[i-1][j]; else{ f[i][j]=max(f[i-1][j],f[i-1][j-a[i]]+w[i]); ans=max(f[i][j],ans);} } } cout<<ans; return 0; } ```
by 幽灵特工 @ 2021-08-15 12:43:42


感谢dalao讲解 明白了 还是对dp中的分类讨论和边界条件不理解qwq
by Link_Cut_Y @ 2021-08-15 18:24:41


其实就是没有考虑a[i]>j的情况
by Link_Cut_Y @ 2021-08-15 18:25:31


这样应该对了吧 ``` #include<bits/stdc++.h> using namespace std; int time1; int sum; int c[10000],w[10000]; int f[10000]; int main() { cin>>time1>>sum; for(int i=1;i<=sum;i++) cin>>c[i]>>w[i]; for(int i=1;i<=sum;i++) { for(int j=time1;j>=c[i];j--) { f[j]=max(f[j],f[j-c[i]]+w[i]); } } cout<<f[time1]; return 0; } ```
by Link_Cut_Y @ 2021-08-15 18:28:23


@[幽灵特工](/user/332549)
by Link_Cut_Y @ 2021-08-15 18:28:57


关注您了hhh
by Link_Cut_Y @ 2021-08-15 18:29:34


我才初二QAQ
by Link_Cut_Y @ 2021-08-15 18:30:10


@[maodan12345](/user/519384) 你还有很大的进步空间啊 我已经高二了,今年再不出成绩就退役了
by 幽灵特工 @ 2021-08-15 18:31:19


| 下一页