Discuz! Board

 找回密码
 立即注册
查看: 149|回复: 1

老师进来一下

[复制链接]

660

主题

846

帖子

243万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2435557

烈空座 Lv:100
发表于 2024-9-16 13:36:46 | 显示全部楼层 |阅读模式
我有问题

[C] 纯文本查看 复制代码
void caiyao()//采药问题 数量有限 
{
	int t,m;//总时间,草药数量
	int w[100],v[100];//草药耗时,草药价值
	int s[1000]={0};//最高价值
	cin>>t>>m;
	for(int i=1;i<=m;i++)	cin>>w[i]>>v[i];
	
	for(int i=1;i<=m;i++)//草药 
	{
		for(int j=t;j>=0;j--)//时间 由高位开始比较,不会覆盖低位最优子结构的结果 
		{
			if(w[i]<=j)
			s[j]=max(s[j],s[j-w[i]]+v[i]);//一维数组不需要else,初值还在 
		}
	} 
	cout<<s[t];
} 

回复

使用道具 举报

9

主题

29

帖子

243万

积分

论坛元老

Rank: 8Rank: 8

积分
2438098

烈空座 Lv:100
发表于 2024-9-21 14:03:42 | 显示全部楼层

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
void caiyao()//采药问题 数量有限
{
    int t,m;//总时间,草药数量
    int w[100],v[100];//草药耗时,草药价值
    int s[1000]={0};//最高价值
    cin>>t>>m;
    for(int i=1;i<=m;i++)    cin>>w[i]>>v[i];
     
    for(int i=1;i<=m;i++)//草药
    {
        for(int j=t;j>=0;j--)//时间 由高位开始比较,不会覆盖低位最优子结构的结果
        {
            if(w[i]<=j)
            s[j]=max(s[j],s[j-w[i]]+v[i]);//一维数组不需要else,初值还在
        }
    }
    cout<<s[t];
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-5-29 05:14 , Processed in 0.060123 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表