B3873 [GESP202309 六级] 小杨买饮料

B3873 GESP202309 六级 小杨买饮料 - 洛谷

输入输出样例:

输入1:

复制代码
5 100
100 2000
2 50
4 40
5 30
3 20

输出1:

复制代码
9

输入2:

复制代码
5 141
100 2000
2 50
4 40
5 30
3 20

输出2:

复制代码
100

输入3:

复制代码
4 141
2 50
4 40
5 30
3 20

输出3:

复制代码
no solution

代码1:

复制代码
#include<bits/stdc++.h>
using namespace std;
int dp[510][2010];
int c[510],l[510];
int main(){
    int n,L;
    cin>>n>>L;
    for(int i=1;i<=n;i++)
        cin>>c[i]>>l[i];
    memset(dp,0x7f,sizeof dp);
    for(int i=0;i<=509;i++)
        dp[i][0]=0;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=L;j++)
            if(l[i]>=j) dp[i][j]=min(c[i],dp[i-1][j]);
            else        dp[i][j]=min(c[i]+dp[i-1][j-l[i]],dp[i-1][j]);
    if(dp[n][L]==0x7f7f7f7f)
        cout<<"no solution";
    else
        cout<<dp[n][L];
    return 0;
}

代码2:

复制代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
int dp[510][2010]; 
int c[510],l1[510];
signed main(){
	int n,l;
	cin>>n>>l;
	for(int i=1;i<=n;i++)
		cin>>c[i]>>l1[i];
	for(int i=0;i<=n;i++)
		for(int j=0;j<=l;j++)
			dp[i][j]=INT_MAX;
	for(int i=0;i<=n;i++)
		dp[i][0]=0;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=l;j++)
			if(l1[i]>=j) dp[i][j]=min(c[i],dp[i-1][j]);
			else		dp[i][j]=min(c[i]+dp[i-1][j-l1[i]],dp[i-1][j]);
	if(dp[n][l]==INT_MAX)
		cout<<"no solution";
	else
		cout<<dp[n][l];
	return 0;
}
相关推荐
HDU-Dade36 分钟前
【校招笔试真题】简要介绍 Self-Attention 的前沿算法
人工智能·算法
小郎君6583 小时前
Vue keep-alive 切标签后滚动位置回顶?因为 onDeactivated 里读到的 scrollTop 是 0
算法
CodeYp20193 小时前
第15讲:二叉搜索树
开发语言·c++·二叉搜索树
邵奈一3 小时前
GPT-6.1 Terra速度是Sol的3倍,价格减半
算法
RaaS1003 小时前
Node.js Brotli RCE 漏洞自查指南:fetch、undici、axios 都在影响面,三分钟确认你的版本
人工智能·深度学习·算法
shehuiyuelaiyuehao3 小时前
算法56,重排链表
数据结构·算法·链表
pipixia200334 小时前
C++继承面试四连问:内存叠加、私有继承、sizeof、权限重映射
c++·面试·嵌入式·继承·面向对象·对象模型
qq_452396234 小时前
第四篇:《索引原理与实战:B-tree、Hash、GIN、GiST、BRIN》
算法·哈希算法·gin
西索斯coding4 小时前
Qwen3-Max 与 Qwen-Plus:60 个真实修复任务评测方案
大数据·网络·算法·ai