265 条题解
-
0hxlong LV 10 @ 2009-09-06 16:24:33
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 25ms
├ 测试数据 10:答案正确... 25ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:50ms
100个背包 -
02009-08-28 09:39:16@
var
a:array[1..10000]of integer;
b:array[0..10000]of boolean;
n,x:integer;
i,s:integer;
max,an:integer;
begin
readln(n);
b[0]:=true;
for i:=1 to n do
begin
max:=0;
read(x);
while x-1 do
begin
inc(max,x);
for s:=max downto x do
if band(not b) then
begin
b:=true;
a:=a+1;
end;
read(x);
end;
readln;
for s:=1 to max do b:=false;
end;
an:=0;
for s:=1 to max do
if a=n then an:=s;
writeln(an);
end.├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 25ms
├ 测试数据 10:答案正确... 9ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:34ms -
02009-08-23 08:48:08@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 118ms
├ 测试数据 10:答案正确... 103ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:221msprogram ex;
var i,j,n,max:longint;
flag:array[0..100000]of boolean;
g:array[0..100000]of longint;procedure dp;
var i,j,x,h:longint;
begin
readln(n);
for i:=1 to n do
begin
read(x);
h:=0;
fillchar(flag,sizeof(flag),false);
flag[0]:=true;
while (x-1) do
begin
inc(h,x);
for j:=h downto 0 do
if flag[j] and not flag[j+x] then
begin
flag[j+x]:=true;
inc(g[j+x]);
end;
read(x);
end;
if h>max then max:=h;
readln;
end;
end;procedure print;
var i,j:longint;
begin
for i:=max downto 0 do
if g[i]=n then
begin
writeln(i);
halt;
end;
writeln(0);
end;begin
dp;
print;
end. -
02009-08-22 20:49:11@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:运行超时|无输出...
├ 测试数据 09:答案正确... 72ms
├ 测试数据 10:答案正确... 72ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:90 有效耗时:144ms
他喵的 无语了 -
02009-08-16 11:24:52@
本人实在是罪过,该水题的通过率一下子被我降了这么多,给没做过的朋友造成无谓的心理负担,贴个程序忏悔下!!!!
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 25ms
├ 测试数据 10:答案正确... 25ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:50ms
program p1059;
var i,j,n,m,top,max:integer;
a:array[0..11111] of integer;
f:array[0..11111] of boolean;
begin
max:=0;
readln(n);
fillchar(a,sizeof(a),0);
fillchar(f,sizeof(f),false);
f[0]:=true;
for i:=1 to n do
begin
top:=0;
read(m);
while m -1 do
begin
inc(top,m);
for j:=top downto m do
if (f[j-m]) and (not(f[j])) then
begin
inc(a[j]);
f[j]:=true;
end;
read(m);
end;
if top>max then max:=top;
for j:=1 to top do
f[j]:=false;
end;
for i:=max downto 1 do
begin
if a[i]=n then
begin
write(i);halt;
end;
end;
write('0');
end. -
02009-08-15 11:03:27@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 72ms
├ 测试数据 10:答案正确... 72ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:144ms第一次写成重复背包了……wa了一次 囧囧囧囧囧囧囧囧囧囧
var
h:array[0..10000]of longint;
ans:array[0..10000]of longint;
n,i,j,k,l,max:longint;
v:array[1..100]of longint;
begin
readln(n);
fillchar(ans,sizeof(ans),0);
for i:=1 to n do
begin
j:=1; max:=0;
read(v[j]);
while v[j]-1 do
begin
max:=max+v[j];
inc(j);
read(v[j]);
end;
dec(j);
fillchar(h,sizeof(h),0);
h[0]:=1;
for k:=1 to j do
for l:=max downto v[k] do
if h[l-v[k]]=1 then h[l]:=1;for k:=0 to max do ans[k]:=ans[k]+h[k];
end;
for i:=10000 downto 0 do if ans[i]=n then
begin
k:=i;
break;
end;
writeln(k);
end. -
02009-08-15 10:49:33@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 181ms
├ 测试数据 10:答案正确... 150ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:331msvar
f:array[-1..100,0..10000]of boolean;
a:array[-1..100,-1..1000]of integer;
t,v:array[1..100]of integer;
n,m,i,j,k,l,p,max:integer;
beginreadln(n);
fillchar(f,sizeof(f),false);
for i:=1 to n do
begin
l:=0;
read(m);
while m-1 do
begin
inc(l);
inc(t[i],m);
a:=m;
read(m);
end;
v[i]:=l;
readln;
end;for k:=1 to n do
begin
f[k,0]:=true;
for i:=1 to v[k] do
for j:=t[k] downto a[k,i] do
f[k,j]:=f[k,j-a[k,i]] or f[k,j];
end;for i:=1 to t[1] do
begin
p:=0;
for k:=1 to n do
if f[k,i] then inc(p);
if p=n then max:=i;end;
writeln(max);
end. -
02009-08-15 09:51:39@
各位哥哥姐姐 帮帮忙咯
-
02009-08-15 09:34:54@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 25ms
├ 测试数据 10:答案正确... 9ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:34ms
var
wood_no,total_no:array[0..1000]of longint;
g:array[0..500,0..500]of longint;
f:array[0..101,0..10000]of boolean;
n,m,i,j,k,l,min,max:longint;
begin
assign(input,'a.in');reset(input);
readln(n);
fillchar(f,sizeof(f),false);
min:=maxlongint;
for i:=1 to n do
begin
l:=0;
read(m);
while m-1 do
begin
inc(l);
inc(total_no[i],m);
g:=m;
read(m);
end;
wood_no[i]:=l;
readln;
end;for k:=1 to n do
begin
f[k,0]:=true;
for i:=1 to wood_no[k] do
for j:=total_no[k]downto g[k,i] do
f[k,j]:=f[k,j] or f[k,j-g[k,i]];
if min>total_no[k] then
min:=total_no[k];
end;for i:=1 to total_no[1] do
begin
l:=0;
for k:=1 to n do
if f[k,i] then
inc(l);
if l=n then
max:=i
end;
writeln(max);
end.真的,是小骆写出来的
-
02009-08-14 10:35:31@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 25ms
├ 测试数据 10:答案正确... 41ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:66ms -
02009-08-13 20:40:43@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 88ms
├ 测试数据 10:答案正确... 103ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:191ms
不知道怎么用01背包求积木高,就用最原始的方法搜索。。。这样也能ac。。本来都已经做好了超时的准备了的。。。只能说puppy跑得这的很快,还有我的rp真的不赖 -
02009-08-13 18:02: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-08-12 14:39:43@
各位大哥大姐……
const
maxn=10000;
maxk=100;
var
g:array[1..maxn] of longint;
i,j,k,t,h,n,x,maxh:longint;
B:BOOLEAN;
begin
readln(n);
for k:=1 to n do
begin
read(x);
h:=0;
while x-1 do
begin
inc(h,x);
inc(g[h]);
read(x);
end;
if h>maxh then maxh:=h;
end;
B:=FALSE;
for i:=maxn downto 1 do
if g[i]=n then
begin
writeln(i);B:=TRUE;
BREAK;
end;
IF NOT B THEN writeln(0);
end.
惨不忍睹啊......
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 03:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 04:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 05:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 06:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 07:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案错误...
├ Hint: 极限数据 ├ 标准行输出
├ 错误行输出├ 测试数据 10:答案错误...
├ Hint: 极限数据 ├ 标准行输出
├ 错误行输出---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:20 有效耗时:0ms我的这种简单的方法有什么不足呢??
-
02009-08-11 17:54:55@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 103ms
├ 测试数据 10:答案正确... 119ms
太失败了 -
02009-08-11 07:40:29@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
秒杀!!!!! -
02009-08-10 14:01:29@
#define MaxN 101
#define MaxL 2001
#include
int W[MaxN][MaxL],
L[MaxN][MaxL], N;
int main()
{
int i, j, K, Sum, MaxSum, Flag, Ans;
scanf("%d", &N);
MaxSum=-1;
for(i=1; iMaxSum) MaxSum=Sum;
break;
}
}
}
for(i=1; i -
02009-08-21 14:02:32@
-
02009-08-07 21:57:44@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms哈哈……^_^ 我最快——爱Puppy!
-
02009-08-07 16:34:01@
Accepted 有效得分:100 有效耗时:1256ms
拿dp还这么慢……用枚举的大牛不知比我快多少……膜拜
-
02009-08-06 15:51:05@
周哥晒晒题解,哈哈哈哈哈哈,忽忽忽忽,西西西西西西
var
i,j,k,zhou,n,x,gaodu,max,l,t:longint;
f:array[-10..10000]of boolean;
a:array[-10..10000]of integer;
begin
readln(n);
f[0]:=true;
for zhou:=1 to n do
begin
read(x);
while (x-1) do
begin
gaodu:=gaodu+x;
for i:=gaodu downto 0 do
if (f=false) and (f[i]=true)
then
begin
f[x+i]:=true;
a[x+i]:=a[x+i]+1;
end;
read(x);
end;
if max