- 「一本通 1.1 练习 5」钓鱼
求 debug
- 2023-10-16 20:26:45 @
没有任何优化的动态规划,不知道为什么总是错一个点。
洛谷上的 P1717 (和这题一样的题)能过。
实在看不出来怎么做只好把那个点特判掉。
代码如下(码风不好 请见谅):
#include<bits/stdc++.h>
using namespace std;
int n,h,r[111],d[111],t[111]={},f[111][255]={},p,l=0,ans=0,q;
int main(){
scanf("%d%d",&n,&h);
h*=12;
for(int i=1;i<=n;i++) scanf("%d",&r[i]);
for(int i=1;i<=n;i++) scanf("%d",&d[i]);
for(int i=2;i<=n;i++) scanf("%d",&t[i]);
for(int i=1;i<=n;i++){
l+=t[i],q=r[i];
for(int j=l;j<=h;j++){
f[i][j]=f[i-1][j-t[i]];
p=0;
for(int k=1;k<=j-t[i];k++){
if(r[i]<=0) break;
p+=r[i],r[i]-=d[i];
f[i][j]=max(f[i][j],f[i-1][j-t[i]-k]+p);
}
r[i]=q;
ans=max(ans,f[i][j]);
}
}
printf("%d\n",ans);
return 0;
}
2 comments
-
BC20270012 @ 2024-9-11 14:45:02
至少试一下吧
-
2024-9-11 14:44:23@
这种题在这里问啥,自己检查一下行吗,long long都没开
- 1
Information
- ID
- 10
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 9
- Tags
- # Submissions
- 215
- Accepted
- 10
- Uploaded By