- 小杨买饮料6级1 202309
- 2024-08-07 19:02:06 @
//这样子连样例都过不了,三个样例全是no solution
#include<bits/stdc++.h>
using namespace std;
int n,L,c[505],l[505];
int dp[2005];
int main()
{
cin>>n>>L;
memset(dp,0x3f,sizeof dp);
for(int i=1;i<=n;i++)
cin>>c[i]>>l[i];
for(int i=1;i<=n;i++)
for(int j=L;j>=0;j--)
dp[j]=min(dp[j],dp[max(j-l[i],0)]+c[i]);
if(dp[L]==0x3f3f3f3f)cout<<"no solution"<<endl;
else cout<<dp[L]<<endl;
return 0;
}
//这样就直接ac了
#include<bits/stdc++.h>
using namespace std;
int n,L,c[505],l[505];
int dp[2005];
int main()
{
cin>>n>>L;
for(int i=1;i<=L;i++)
dp[i]=0x3f3f3f3f;
for(int i=1;i<=n;i++)
cin>>c[i]>>l[i];
for(int i=1;i<=n;i++)
for(int j=L;j>=0;j--)
dp[j]=min(dp[j],dp[max(j-l[i],0)]+c[i]);
if(dp[L]==0x3f3f3f3f)cout<<"no solution"<<endl;
else cout<<dp[L]<<endl;
return 0;
}
3 条评论
-
240901gj花子轩 (EL230810) LV 8 @ 2024-08-09 16:40:57
你们是最后一期上电脑课了吗?
-
2024-08-08 13:04:48@
我又聪明了,忘记给dp[0]赋初值了
-
2024-08-07 19:05:05@
我寻思着dp数组赋值的范围也不会超过L啊
- 1
信息
- ID
- 2613
- 难度
- 7
- 分类
- (无)
- 标签
- 递交数
- 51
- 已通过
- 12
- 通过率
- 24%
- 上传者