327 条题解
-
0Xu Taotao LV 9 @ 2009-07-16 13:57:37
program dsa;
var a:array[0..10000]of boolean;
x,y:array[1..100]of integer;
l,m,s,i,j:integer;
begin
read(l,m);
for i:=0 to l do a[i]:=true;
for i:=1 to m do read(x[i],y[i]);
for i:=1 to m do
for j:=x[i] to y[i] do a[j]:=false;
s:=0;
for i:=0 to l do
if a[i] then inc(s);
writeln(s);
end.农夫山泉
-
02009-07-16 10:14:45@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms对于水题,我们坚决秒杀
-
02009-07-15 15:24:19@
var
l,m,x,y,i,j,num:integer;
f:array[1..10000] of boolean;
begin
readln(l,m);fillchar(f,sizeof(f),true);
for i:=1 to m do
begin
readln(x,y);
for j:=x to y do
f[j]:=false;
end;
for i:=0 to l do
if f[i] then num:=num+1;
writeln(num)
end. -
02009-07-15 10:25:44@
color=red【vj】
-
02009-07-09 19:08:18@
program ex;
var l,m,a,b,i,s,j:integer;
y:array[0..10000] of boolean;
begin
read(l,m);
for i:=0 to l do y[i]:=true;
for i:=1 to m do
begin
readln(a,b);
for j:=a to b do y[j]:=false;
end;
s:=0;
for i:=0 to l do if y[i]=true then inc(s);
writeln(s);
end.
这样也行,无语,水~~~~~~ -
02009-07-07 20:28:48@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 03:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 04:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 05:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 06:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 07:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 08:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 09:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 10:答案错误... ├ 标准行输出
├ 错误行输出
---|---|---|---|---|---|---|---|-
由此观之,读题!数据是从0开始给的 细节 RP啊
还有,注意是0的特殊情况
最后,拿这个练线段树吧 -
02009-07-03 08:28:59@
program cst;
var a:array[0..10000] of boolean;l,m,n,i,b,c,t:integer;
begin
t:=0;
read(l,m);
for i:=0 to l do
a[i]:=true;
for n:=1 to m do
begin
read(b,c);
for i:=b to c do
a[i]:= false;
end;
for i:=0 to l do
if a[i]=true then inc(t);
writeln(t);
end. -
02009-06-28 19:23:39@
var l,m,j,i,t:longint;
a,b,c:array[0..10000]of longint;
begin
readln(l,m);
for i :=1 to m do
readln(b[i],c[i]);
for i:=0 to l do
a[i]:=1;
for i:=1 to m do
for j:=b[i] to c[i] do
a[j]:=0;
for i:=0 to l do
if a[i]=1 then t:=t+1;
writeln(t);
end.无敌水啊
庆祝第一次秒杀. -
02009-06-21 19:19:47@
Attention:从0开始
program w1103;
var tree:array[0..20000] of boolean;
a,b:array[1..1000] of longint;
i,j,l,n,m,p,q,ans:longint;
begin
read(n,l);
fillchar(tree,sizeof(tree),false);
for i:= 1 to l do begin
readln(a[i],b[i]);
for j:=a[i] to b[i] do tree[j]:=true;
end;
ans:=0;
for i:=0 to 20000 do
if tree[i]=true then inc(ans);
writeln(n-ans+1);
end. -
02009-06-14 21:44:34@
这题对于初学线段树的人来说,拿来练手很不错。
贴给好懂点的线段树,应该比较好懂。^_^
program tree;
const
maxn=10001;type
node= record
a,b,ls,rs,count:longint;
cov:boolean;
end;
var
p:array[1..maxn*2] of node;
all,x,y,n,m:longint;
procedure creat(c,d:longint);
var
now,mid:longint;
begin
inc(all);
now:=all;
p[now].a:=c; p[now].b:=d;
if cp[x].b) or (d -
02009-06-11 20:34:10@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
program tree;
const
max=10001;
type
node=record
st,en:integer;
end;
var
trees:array[0..max] of integer;
l,m,i,j,sum:integer;
subway:array[1..100] of node;
begin
for i:=1 to max do
trees[i]:=0;
readln(l,m);
for i:=1 to m do
readln(subway[i].st,subway[i].en);
for i:=0 to l do
trees[i]:=1;
for i:=1 to m do
for j:=subway[i].st to subway[i].en do trees[j]:=0;
sum:=0;
for i:=0 to l do
if trees[i]=1 then inc(sum);
writeln(sum);
end. -
02009-06-07 16:52:39@
难的做不出来,做道基础题安慰一下自己
-
02009-06-06 17:46:33@
var a:array[0..10000] of integer;
b,c:array[1..100] of longint;
l,m,i,j,n:longint;
begin
for i:=0 to 10000 do a[i]:=0;
readln(l,m);
for i:=1 to m do
begin
read(b[i],c[i]);
for j:=b[i] to c[i] do a[j]:=1;
end;
n:=0;
for i:=0 to 10000 do
if a[i]=1 then inc(n);
writeln(l+1-n);
end. -
02009-05-30 00:27:32@
用bool array就Ok的。
有空用集合做一下,练练手,先留在这里提醒我一下。 -
02009-05-14 22:29:06@
线段树写法(小题大做)....
program line_tree;
type pt=^node;
node=record
count:0..1;
l,r:integer;
lc,rc:pt;
end;
var pp:pt;
i,j,k,n,m:integer;function build(k1,k2:integer):pt;
var i,j,mid:integer;
p:pt;
begin
new(p);
p^.l:=k1;
p^.r:=k2;
p^.count:=0;
if k2-k1>1 then
begin
mid:=(k1+k2) div 2;
p^.lc:=build(k1,mid);
p^.rc:=build(mid,k2);
end;
exit(p);
end;procedure insert(k1,k2:integer;p:pt);
var
i,j,mid:integer;
begin
if (p^.l=k1) and (p^.r=k2) then begin
p^.count:=1;
exit;
end;
mid:=(p^.l+p^.r) div 2;
if k2=mid then begin insert(k1,k2,p^.rc);exit; end;
insert(k1,mid,p^.lc);
insert(mid,k2,p^.rc);
end;procedure init;
var i,j:integer;
a,b:integer;
begin
readln(n,m);
new(pp);
pp:=build(0,n);
for i:=1 to m do
begin
readln(a,b);
insert(a-1,b,pp);
end;
end;procedure search(p:pt);
var i,j,mid:integer;
begin
if p^.count=1 then begin
dec(n,p^.r-p^.l);
exit;
end;
if p^.r-p^.l=1 then exit;
search(p^.lc);
search(p^.rc);
end;begin
init;
search(pp);
writeln(n+1);
end.
不要打我.... -
02009-05-06 17:19:41@
晕啊!!
居然把10000看成了1000
还得我UA了一次
看来做基础题也要细心啊!! -
02009-05-03 11:07:56@
不要脸,错的也贴
-
02009-04-30 22:45:30@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
水题...随便AC -
02009-04-22 21:57:59@
program shu;
var
c:array[0..10000] of integer;
l,m,n,o,p:integer;
a:array[1..100] of integer;
b:array[1..100] of integer;
begin
readln(l,m);
for o:=1 to m do
begin
readln(a[o],b[o]);
for p:=a[o] to b[o] do c[p]:=1;
end;
n:=0;
for o:=0 to 10000 do
if (c[o]=1) then n:=n+1;
n:=l+1-n;
writeln(n);
end.
还算轻松 -
02009-10-10 16:25:15@
program puji0502;
const N=10000;
var i,j,L,m,sum:integer;
a:array[0..N] of 0..1;
b:array[1..300,1..2] of integer;
begin
readln(L,m);
for i:=0 to N do
a[i]:=1;
for i:=1 to m do
begin
readln(b,b);
end;
for i:=1 to m do
begin
for j:=b to b do a[j]:=0;
end;
sum:=0;
for i:=0 to L do
sum:=sum+a[i];
writeln(sum);
end.