帮我看看这个程序,NOIP2010普及组第二题。
发布网友
发布时间:2022-12-29 09:58
我来回答
共4个回答
热心网友
时间:2023-10-26 03:53
假如输入范围小于等于10000,它很可能就会有10000这个点。你自己测试的时候最好把最大数据测一下。 好麻烦啊 第一题我拿了100分 网上有测试
热心网友
时间:2023-10-26 03:53
我是这么做的
var i,j,r,m,n,min:longint;
f:boolean;
a:array[1..20000]of integer;
begin
readln(m,n);
for i:=1 to m do
read(a[i]);
r:=n;
repeat
inc(min);
for j:=1 to n do
begin
if a[j]<>0 then
dec(a[j]);
if (a[j]=0)and(r<m)then
begin
inc(r);a[j]:=a[r];
end;
end;
f:=true;
for j:=1 to n do
if a[j]<> 0 then
f:=false;
until f and (r=m);
writeln(min);
end.追问r与m有什么关系?
热心网友
时间:2023-10-26 03:54
program water;
var
n,m,i,j,t,ans:longint;
a,b,c:array [1..20000] of longint;
begin
readln(n,m);
for i:=1 to n do
read(a[i]);
readln;
t:=m;
ans:=0;
fillchar(b,sizeof(b),0);
for i:=1 to m do
c[i]:=i;
while t<m+n do
begin
for i:=1 to m do
begin
inc(b[c[i]]);
if b[c[i]]=a[c[i]] then
begin
b[c[i]]:=0;
t:=t+1;
c[i]:=t;
end;
end;
inc(ans);
end;
writeln(ans);
end.
看下子,看不懂就问我追问我手上有标称,我只想问我的为什么错
热心网友
时间:2023-10-26 03:55
你没有考虑数据m为0的情况追问我明确的告诉你,数据没有m=0;