55 条题解
-
0silence_sure LV 8 @ 2012-10-21 14:22:49
为么我觉得这题很麻烦?
-
02009-11-11 21:07:07@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
50题紀念 -
02009-11-10 12:04:31@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案错误... ├ 标准行输出 50
├ 错误行输出 35├ 测试数据 05:答案错误... ├ 标准行输出 1
├ 错误行输出 0├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案错误...程序输出比正确答案长
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案错误... ├ 标准行输出 47
├ 错误行输出 35var
n,i,j,k,x:longint;
f,f1:array[1..30,-50..50]of boolean;
begin
assign(input,filename+'.in');reset(input);
assign(output,filename+'.out');rewrite(output);
read(n,x);fillchar(f1,sizeof(f1),false);f1[1,x]:=true;f1[1,-x]:=true;
for i:=2 to n do
begin fillchar(f,sizeof(f),false);
for j:=1 to i do
begin
read(x);
if j=1 then
begin for k:=-50 to 50 do
if f1[1,k]then
begin if (k+x>=-50)and(k+x=-50)and(k-x=-50)and(k+x=-50)and(k-x1)and(j=-50)and(k+x=-50)and(k-x=-50)and(k+x=-50)and(k-x=-50)and(k+x=-50)and(k-x=-50)and(k+x=-50)and(k-x -
02009-11-09 13:35:19@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02009-11-03 19:39:26@
My Love-Cici~
-
02009-10-31 22:15:37@
这道题为什么f:array[1..60,1..30,-50..50]也能过,感觉应该
f:array[1..30,1..30,-3000..3000] -
02009-10-23 14:51:29@
var
f:array[1..60,1..30,-50..50]of boolean;
a:array[1..60,1..30]of integer;
n,i,j,k,ans:longint;
begin
readln(n);
for i:=1 to n do
begin
for j:=1 to i do read(a);
readln;
end;
for i:=n+1 to 2*n-1 do
begin
for j:=1 to 2*n-i do read(a);
readln;
end;
fillchar(f,sizeof(f),false);
f[1,1,a[1,1]]:=true;
for i:=2 to n do
for j:=1 to i do
for k:=-50 to 50 do
begin
if j>1 then
begin
if ((k+a)=-50) then f:=(f[i-1,j-1,k+a])or(f);
if ((k-a)=-50) then f:=(f[i-1,j-1,k-a])or(f);
end;
if j -
02009-10-22 13:07:59@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 9ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 9ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:18ms可惜可惜,没有妙杀。
可以用“搭建双塔”的思想。
上次推错了,上半个三角形和下半个三角形还是有少少不同。
if (k-v1>min) and (k-v1min) and (k+v1min) and (k-v2min) and (k+v2
-
02009-10-20 13:38:36@
为什么我超时啊才30分..
-
02009-10-09 15:59:02@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
鉴定完毕,奇水无比! -
02009-10-08 19:53:31@
水题啊
-
02009-10-04 23:28:28@
秒杀!!
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms---|---|---|---|---|---|---|---|---|---|---|---|---|---|--
var n,i,j,k,t,min:integer;
a:array[1..30,1..30]of integer;
f:array[0..61,0..31,-100..100]of boolean;begin
read(n);
for i:=1 to 2*n-1 do
for j:=1 to n-abs(n-i) do
read(a);f[1,1,a[1,1]]:=true;
for i:=2 to n do
for j:=1 to n-abs(n-i) do
for k:=-50 to 50 do
begin
if f[i-1,j-1,k-a]=true then
f:=true;
if f[i-1,j-1,k+a]=true then
f:=true;
if f[i-1,j,k-a]=true then
f:=true;
if f[i-1,j,k+a]=true then
f:=true;
end;for i:=n+1 to 2*n-1 do
for j:=1 to n-abs(n-i) do
for k:=-50 to 50 do
begin
if f[i-1,j+1,k-a]=true then
f:=true;
if f[i-1,j+1,k+a]=true then
f:=true;
if f[i-1,j,k-a]=true then
f:=true;
if f[i-1,j,k+a]=true then
f:=true;
end;min:=maxint;
for i:=-50 to 50 do
if f[2*n-1,1,i]=true then
if abs(i) -
02009-09-23 22:52:02@
程序还是有点麻烦的说~~~~~循环真多~~~~~~
-
02009-09-12 21:36:52@
汗~~~上下两部分不一样啊………………
方程:
f=f[i+1,j-1,k-a] or f[i+1,j-1,k+a] or f[i+1,j,k-a] or f[i+1,j,k+a] (1 -
02009-08-21 09:40:09@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar
i,j,n,min,k:longint;
s:array[1..100,1..100] of longint;
a:array[0..61,0..61,-3000..3000] of boolean;function allow(k:longint):boolean;
begin
if (k>=-3000) and (k -
02009-08-14 18:07:24@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
第一次把第1到2n-1行都混在一起处理,也都对了7个点,可见数据蛮弱的。。。
第二次把第1到n行,n+1到2n-1分开处理就秒了~~
胸中憋了一个下午的郁闷之气终于没了 -
02009-08-12 08:45:29@
第600个通过......
纪念下! -
02009-08-11 00:35:20@
..。。辛亏我不会因为这道题恶心孙燕姿。。。第1个点和第4点输出答案比正确答案长。。。10次了。。。
第12次。。。冷静下来。。发现只可能边界问题。。终于AC。。。头发白了…………
居然是简单的初始化搞错了~12次。。。。。 -
02009-08-06 17:39:56@
数据好弱额。。。。。。
直接秒。。。。。。
0ms。。。。。。
爽 -
02009-08-03 14:02:30@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms神诶 秒杀...
---|---|---|---|---|---|---|---|---|---|---|---|---|晒程序---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|-
program p1280;
var n,now:longint;
a:array[0..61,0..31] of integer;
f:array[0..1,0..31,-3000..3000] of boolean;procedure init;
var i,j:longint;
begin
readln(n);
for i:=1 to n do
begin
for j:=1 to i do read(a);
readln;
end;
for i:=n+1 to 2*n-1 do
begin
for j:=1 to 2*n-i do read(a);
readln;
end;
end;procedure dp;
var i,j,k:longint;
begin
fillchar(f,sizeof(f),0);
f[0,1,a[1,1]]:=true;
now:=0;
for i:=2 to n do
begin
now:=1-now;
for j:=1 to i do
for k:=-2700 to 2700 do
f[now,j,k]:=f[1-now,j,k+a] or f[1-now,j,k-a] or f[1-now,j-1,k+a] or f[1-now,j-1,k-a];
end;for i:=n+1 to 2*n-1 do
begin
now:=1-now;
for j:=1 to 2*n-i do
for k:=-2700 to 2700 do
f[now,j,k]:=f[1-now,j,k+a] or f[1-now,j,k-a] or f[1-now,j+1,k+a] or f[1-now,j+1,k-a];
end;
end;procedure outit;
var i:longint;
begin
for i:=0 to 2900 do
if f[now,1,i] or f[now,1,-i] then begin
writeln(i); exit;
end;
end;begin
init;
dp;
outit;
end.