解题思路:这个题充分考察了算法的能力,实际上就是01背包的一个非常简单的变形,如果可以我建议先百度一下01背包,再来看这个问题就会容易的多了。

运用到的知识:

多维数组,递归(知道为什么不好做了吧( ̄▽ ̄)"

注意事项:一定要注意数组的范围!!!题主就是在这个非常平常的地方栽了跟头。。。哭4

参考代码:

int max(int a,int b)

{

return a>b?a:b;

}

int main()

{

int T,M,t[101],c[101];  //t[101]储存每一个药的时间,c[101]储存每一个药价值

int f[102][1002]={0};  //务必初始化,其实呢也可以只用把二维数组的第一行初始化就ok了

int i,j,k;

scanf("%d %d",&T,&M);

for(i=1;i<=M;i++)

{

scanf("%d %d",&t[i],&c[i]);

}

for(i=1;i<=M;i++)

{

for(j=1;j<=T;j++)

{

if(j>=t[i])

f[i][j]=max(f[i-1][j],f[i-1][j-t[i]]+c[i]);  //这就是01背包中的两个状态,采或者不采两种情况哪个的价值最大

else

f[i][j]=f[i-1][j];    //书包的空间(时间不够了)

}

}

for(i=0;i<=M;i++)            //检查所有的值,找最大的值

{

k=f[0][0];

for(j=0;j<=T;j++)

{

if(f[i][j]>k)

k=f[i][j];

}

}

printf("%d",k);

}

//其实呢,除了多维数组,一维数组利用递归也是可以解决问题滴

//不过,悲惨的超时了。。。。

int t[100],c[100];

int main()

{

int T,M,k,i;

scanf("%d %d",&T,&M);

for(i=1;i<=M;i++)

{

scanf("%d %d",&t[i],&c[i]);

}

int make(int ,int );

k=make(M,T);

printf("%d",k);

return 0;

}

int make(int i,int j)    //第 i个对象,剩余j个时间

{

if(i==0)

return 0;

if(j>=t[i])

{

int r1=make(i-1,j);

int r2=make(i-1,j-t[i])+c[i];

return r1>r2?r1:r2;

}

else return make(i-1,j);

}

采药问题 c语言程序,采药 (C语言代码)相关推荐

  1. c语言 程序循环,C语言程序设计-循环例子

    <C语言程序设计-循环例子>由会员分享,可在线阅读,更多相关<C语言程序设计-循环例子(28页珍藏版)>请在人人文库网上搜索. 1.C 语言程序设计基础篇,第 7 章 简单程序 ...

  2. 简单说明c语言程序步骤,C语言的入门简介和三个简单的C语言程序详细说明

    学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好.Keil软件是目前最流行开发80C51系列单片机的软件,Keil提供了包括C编译器.宏汇编.连接器.库管理和一个功能强大的仿真调试器等在 ...

  3. c语言程序前言,C语言 程序代码编写规范前言

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一个好的程序编写规范是编写高质量程序的保证.清晰.规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性 ...

  4. c语言程序基本设计,C语言程序的设计基本6.ppt

    C语言程序的设计基本6 第六章 本章要点 建立循环程序设计的基本概念和逻辑思维 掌握循环程序设计的方法 6.1 if-goto 语句循环 一般形式: goto 标号: 标号:语句 其中:标号用标识符表 ...

  5. c语言 程序结集,c语言(结体程序设计).doc

    c语言(结体程序设计) C语言程序设计实验报告 实验七.结构体程序设计 [实验目的] (1)掌握结构体类型的概念.定义和使用: (2)掌握结构体数组.结构体指针的定义和使用: [实验内容及步骤] 1. ...

  6. 情人节c语言程序,情人节c语言代码.doc

    情人节c语言代码 篇一:一些简单的C语言程序代码 由键盘任意输入1个4位数整数,分别输出其中的个位.十位.百位.千位. /* expe 3-10 */ #include #include void m ...

  7. 好听的歌曲单片机c语言程序,单片机C语言程序举例(三)

    原标题:单片机C语言程序举例(三) 14.音乐播放 //此程序在硬件上调试通过 //本程序的晶振采用11.0592M #include sbit speaker=P1^2; unsigned char ...

  8. c 语言程序编辑,C语言程序编辑学习篇—编程者说之C语言

    谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是"让我欢喜让我忧."欢喜的是,C语言功能非常强大.应用广泛,一旦掌握了后,你就可以理直气壮地对他人说"我是电脑高手 ...

  9. 认识c语言程序,认识C语言 -一个完整的C语言程序是什么样的?

    为了创建完整的 C语言程序需要在 C 源文件中输入代码.任何文本编辑器(比如 Windows 中的"记事本")都可以创建 C 源文件,它们的文件名通常以".c" ...

  10. adc0809 c语言程序,单片机C语言程序设计:ADC0809数模转换与显示

    描述 本文分享ADC0809数模转换与显示的单片机C语言程序设计与电路图. ADC0809 数模转换与显示c语言程序 /*名称:ADC0809数模转换与显示 说明:ADC0809采样通道3输入的 模拟 ...

最新文章

  1. exp ORA-01455: converting column overflows integer datatype
  2. Spring Boot 内置Tomcat——getServletContext().getRealPath()为临时目录问题解决方案
  3. Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
  4. Spring Bean名称
  5. 彩票抽奖(洛谷P2550题题解,Java语言描述)
  6. Maven安装配置操作
  7. 2017.9.23 Count on a tree 思考记录
  8. 【渝粤教育】国家开放大学2018年秋季 0056-22T知识产权法 参考试题
  9. Java开发 基础三十条 初学必看
  10. how to set up github blog
  11. 极客星球 | Unity3D插件模板化探索
  12. DR,TUN,NAT优缺点
  13. 搭建无iDP证书的Xcode环境
  14. java+vue+onlyoffice的简单集成
  15. 哔哩哔哩面试经验分享
  16. 计算机在智能建筑中的应用,【计算机技术在建筑智能化中的应用研究原稿_0材料】...
  17. UVa Problem 10041 Vito’s Family (Vito 家族)
  18. pads 打开AD 软件的pcb——两种方式
  19. NKOJ 1361 帮帮吉米(Help Jimmy)
  20. U盘插上,在我的电脑中不显示盘符怎么办?

热门文章

  1. 攻防世界MISC进阶之misc1
  2. AutoML功能解析
  3. CESIUM学习—— viewer.trackedEntity小坑坑
  4. # 英语听抄 (英)
  5. Win11怎么连接宽带?
  6. 抖音跳转到微信引流的方法,私信页面如何添加微信
  7. 不畏浮云遮望眼,自缘身在最高层
  8. import java.util.* cannot be resolved或import java.io.*cannot be resolved解决方案
  9. 晨跑、午后跑和夜跑对身体的影响及优缺点
  10. ShowMeAI —— Show u 三连