讨论 / WHY WA?
Jay-Chan 2010-08-17 20:30:00
点我顶贴 收藏 删除
program p96;

var a,b:array[0..2000]of integer;

n,m,i,j,t,k:longint;

begin

read(n,m);

for i:=1 to n do readln(a[i]);

for i:=1 to m do readln(b[i]);

for i:=1 to m do

if b[i]=0 then b[i]:=301;

for i:=1 to m-1 do

for j:=i+1 to m do

if b[i]<b[j] then begin

t:=b[i];b[i]:=b[j];b[j]:=t;

end;

for i:=1 to n-1 do

for j:=i+1 to n do

if a[i]<a[j] then begin

t:=a[i];a[i]:=a[j];a[j]:=t;

end;

k:=1;

for i:=1 to n do

for j:=1 to m do

if a[i]>b[j] then

begin

dec(m); b[k]:=301; break;

end;

writeln(m);

end.

积分不多,意思意思下了;

#1 Jay-Chan@2010-08-02 16:04:00
回复 删除
Nobody?
#2 Jay-Chan@2010-08-07 18:12:00
回复 删除
P96
#3 n1994625@2010-08-10 00:25:00
回复 删除
for i:=1 to n do

for j:=1 to m do

if a[i]>b[j] then

begin

dec(m); b[k]:=301; break;

end;

dec(m) 后 m的值会变小

你可以用一个变量K

k := m

for i:=1 to n do

for j:=1 to m do

if (a[i]>b[j]) and (b[j]>0)then

begin

dec(k); b[j]:=301; break;

end;

#4 zhanglin@2010-08-10 00:34:00
回复 删除
#5 zhanglin@2010-08-10 00:34:00
回复 删除
#6 WAharo@2010-08-17 20:28:00
回复 删除
#include"stdio.h"

int tao[10000],ping[10000],pn,tm;

void quick(int h,int r)

{

if(h<r)

{

int t=tao[h],i=h,j=r;

while(i<j)

{

while(i<j && tao[j]<t)

j--;

if(i<j)

{

tao[i]=tao[j];

i++;

}

while(i<j && tao[i]>t)

i++;

if(i<j)

{

tao[j]=tao[i];

j--;

}

}

tao[i]=t;

quick(h,i-1);

quick(i+1,r);

}

}

main()

{

int i,j;

scanf("%d%d",&pn,&tm);//输入苹果,陶陶数量

for(i=0;i<pn;i++)

scanf("%d",&ping[i]);// 苹果可碰到高度

for(i=0;i<tm;i++)

scanf("%d",&tao[i]);//陶陶高度

int sum=tm;//陶陶剩下数量

quick(0,tm-1);//排陶陶高度

for(i=0;i<pn;i++)//让苹果一个个的试

{

for(j=0;j<tm;j++)//让苹果摘尽量高的陶陶

{

if(tao[j]!=0 && ping[i]>tao[j])//如果陶陶高度不为0,并且苹果能摘到

{

sum--;//此陶陶被摘走

tao[j]=2000;//此陶陶不能再次被摘

break;换下一个陶陶

}

if(tao[j]==0)//如果次陶陶高度为0,则所有苹果都无法摘

break;

}

}

printf("%d",sum);//输出剩余陶陶数量

}

#7 WAharo@2010-08-17 20:30:00
回复 删除
lz的代码我觉得错误有点。。。所以看了之后把我的代码发上去,如果看不懂代码,

那看看注释,希望对lz有帮助

查看更多回复
提交回复