Pascal改错逛街 背景 Background NOIP2009泰州二附中第二次模拟赛 描述 Description 某天,ZCL在街上闲逛.他在超市里看到促销广告:商品大降价.于是他很高兴地拿着篮子购物去了.

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/17 20:54:28
Pascal改错逛街    背景 Background          NOIP2009泰州二附中第二次模拟赛    描述 Description           某天,ZCL在街上闲逛.他在超市里看到促销广告:商品大降价.于是他很高兴地拿着篮子购物去了.
xW[SF+;iPEm 6yh:v&v} tdF[vmaOܡ$! @h%)g%sILy|~;T Յ-"G&ե" v'}"?n;%XLVF 7k:Dk(33I }NBB#>/w&VwV^I0s%d <7h!4JeZ}T$ǹG8 %uD[6ޚwxP<s7`*q2z9;lUyNҸ |%^Ӑ>liO6B?Ȩ1Q{1eƠL}-VSR i@e2huknxp l3D JYVʯFV_A(^C! eMJ.ڜrC83BL-x}Yy !ԲыMtlX7ҧ"ҷ3<ؕ{F?Ǚ (>A?>ɪwd`[f!OЂHm\I( -lj/+dPj$~📃NLo( uu4D0⦗6sp57X_<}mيO}ҿ5<:'[3gJ_+V7v풷r o44LScf(FT%PI=!<Ol2vh0wx]cC/WmO j2X0Hls!nvKć x498OY.*:D*F%!"$.$őx-+ˠS"ͅh4ijIGJ GbQ"1"'^K)^RG)Ck60!'^C>2[`vHavEܪzoՍŖ" GrV<3=SLxsڟ041iwD?y+Bc4PyS4X7 ET*pC=oT2KR ҼRqn1ApL[m~c=1^'xB>sxX%򵰬n/F&´2'PŸKְA/n>X[PqLtڰnLr`A?RbgSq>D8:W/2<]Nǯ"4H͂U^F/̙UrF[مkݧ]׾[ڒYS qa_wk 1]j\h~:%VWATIi oIOǎɭ:Wҋpqip-x՝ Z=Wmixitߢ,kB6RqQ(VL) hjdLypA mBGҐ>͐҂1h՗;r"-1X[H_t鴳 u6Z8z:|#Qk4M3jg:+To2

Pascal改错逛街 背景 Background NOIP2009泰州二附中第二次模拟赛 描述 Description 某天,ZCL在街上闲逛.他在超市里看到促销广告:商品大降价.于是他很高兴地拿着篮子购物去了.
Pascal改错
逛街    
背景
Background    
      
NOIP2009泰州二附中第二次模拟赛
   
描述
Description     
      
某天,ZCL在街上闲逛.他在超市里看到促销广告:商品大降价.于是他很高兴地拿着篮子购物去了.
 
已知商场内有n种商品.每种商品的重量为w千克,价格为v.价值为t.此种商品有h件.
注意.此商场有一个奇怪的规定.每种物品要么不买,要么买1件或h件.
ZCL带了y元.ZCL最多能扛x千克的物品.
请帮ZCL求出他最多能获得的价值.(不允许抢劫)
   
输入格式 Input
Format    
      
输入文件shop.in的第一行有3个用空格隔开的整数n、x和y.
接下来的n行,每行有4个数据,分别为w、v、t和h.
   
输出格式 Output
Format    
      
输出文件shop.out共一行,表示ZCL最多能获得的价值.   
样例输入 Sample
Input     
      
2 8 10
5 3 7 1
3 7 10 1
   
样例输出 Sample
Output     
      
17
   
时间限制 Time
Limitation    
      
各个测试点1s
   
注释
Hint    
      
【限制】
100%的数据满足:0<=n<=300,0<=x<=100,0<=y<=100,0<=h<=10
   
    程序如下:


var m,n,j,i,r,k:longint;
    v,c,w,h:array[1..300] of longint;
    f:array[0..300,0..100,0..100] of longint;
function max(x,y:longint):longint;
 begin
 if x>y then max:=x else max:=y;
end;
begin
readln(n,m,r);
 for i:=1 to n do   readln(w[i],v[i],c[i],h[i]);
 fillchar(f,sizeof(f),0);
 for i:=1 to n do   for j:=1 to m do for k:=1 to r do   begin
 if (j>=w[i]*h[i]) and (k>=v[i]*h[i]) then
  f[i,j,k]:=max(f[i-1,j-w[i]*h[i],k-v[i]*h[i]]+c[i]*h[i],f[i-1,j,k]);
  if (j>=w[i]) and (k>=v[i]) then f[i,j,k]:=max(f[i-1,j-w[i],k-v[i]]+c[i],f[i-1,j,k]) else

  f[i,j,k]:=f[i-1,j,k];
 end;
 writeln(f[n,m,r]);
end.


过了五个点.求改错.

Pascal改错逛街 背景 Background NOIP2009泰州二附中第二次模拟赛 描述 Description 某天,ZCL在街上闲逛.他在超市里看到促销广告:商品大降价.于是他很高兴地拿着篮子购物去了.
输入数据
3 1 10
0 1 10 1
1 1 10 1
9 99 999 9999
错误输出
10
LZ可以把 ”for i:=1 to n do for j:=1 to m do for k:=1 to r do“ 循环改成 “for i:=1 to n do for j:=0 to m do for k:=0 to r do”或者直接改成 “for i:=1 to n do for j:=w[i] to m do for k:=v[i] to r do”因为输入数据可能有一种物品没有重量却有价值、、、
下面是我的程序,由于找不到评测网站就没办法贴上评测结果了╮(╯▽╰)╭.
var f:array[0..100,0..100]of longint;
i,j,k,m,n,x,y,ans,w,v,t,h:longint;
function max(a,b:longint):longint;
begin
if a>b then exit(a)
else exit(b);
end;
begin
readln(n,x,y);
i:=0;
fillchar(f,sizeof(f),0);
for i:=1 to n do
begin
readln(w,v,t,h);
for j:=x downto w do
for k:=y downto v do
begin
f[j,k]:=max(f[j,k],f[j-w,k-v]+t);
if(j>=w*h)and(k>=v*h)then
f[j,k]:=max(f[j,k],f[j-w*h,k-v*h]+t*h);
end;
end;
writeln(f[x,y]);
end.