切换到宽版
  • 27758阅读
  • 50回复

关于采药问题 [复制链接]

上一主题 下一主题
离线壞の学生
只看该作者 40 发表于: 2007-08-16
很容易啊
典型的背包
PKU上好像有吧
离线lwx
只看该作者 41 发表于: 2007-08-24
这道题我做过的,下面就演示给大家看:program yao;
type
  caiyo = record
    time:1..100;
    jage:1..100;
  end;
  arr = array [1..100] of caiyo;
var
  a:arr;
  m,i,j,b,t:integer;
  g,f:text;
  q:caiyo;
begin
  assign(g,'medic.txt');
  assign(f,'medic.out');
  reset(g);
  rewrite(f);
  readln(g,t,m);
  for i := 1 to m do
    readln(g,a.time,a.jage);
  for i := 1 to m-1 do
    for j := 1 to m-i do
      if a[j].jage / a[j].time < a[j+1].jage / a[j+1].time then
      begin
        q:=a[j];
        a[j]:=a[j+1];
        a[j+1]:=q;
      end;
  for i := 1 to m do
    if t >= a.time then
    begin
      t := t - a.time;
      b := b + a.jage;
    end;
  write(f,b);
  close(g);
  close(f);
end.
我用的是记录类型做的不只道符不符合大侠的口味.
离线liuichou
只看该作者 42 发表于: 2007-08-24
01背包问题
离线lwx
只看该作者 43 发表于: 2007-08-24
这道题不能用贪心算法,只有用递归,
离线lwx
只看该作者 44 发表于: 2007-08-24
地方
离线teacher
只看该作者 45 发表于: 2007-09-02
最新!!!!!!!!
仔细拜读前辈留言后:

43楼和33楼的方法繁
建议看9楼的,绝对好,自己加上文件输入输出即可
他的就是动态规划!!!
不过有些缺陷

他的意思是数组的下标是拿的容量
数组的值是拿那么多的容量时价值最大值
但最后输出时应把数组最大值输出
离线babblishu
只看该作者 46 发表于: 2007-09-08
果然有很多冷静的人
离线木一一
只看该作者 47 发表于: 2007-11-07
0—1背包基础啊
离线121371490
只看该作者 48 发表于: 2007-11-09
引用几句我们张老的话:
    同学努点力,小心毕不到业!
    一个字——努力!
    连着都不知道,讲了一遍又一遍!
离线fchqq
只看该作者 49 发表于: 2007-11-09
DP..
贪心是不行的。。
快速回复
限100 字节
 
上一个 下一个