117 条题解
-
0j262492438 LV 3 @ 2008-10-13 20:58:06
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms一次ac的 太感动了
我的思路很麻烦
希望各位大牛写个dp方程 -
02008-10-06 12:14:05@
树形dp
-
02008-10-05 12:09:18@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-09-30 14:29:18@
去年A掉,今年又做
-
02008-09-26 15:55:43@
第一次写树形dp 费了半天劲 终于ac了
感谢***|wyk的题解 -
02008-09-26 14:56:29@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
program palase;
type aa=record
num,m:longint;
c:array[1..1500]of int64;
end;
var tr:array[1..1500]of aa;
p:array[1..1500]of boolean;
f:array[1..1500,0..2]of int64;
i,j,k,m,n,root:longint;
min:longint;
function xiao(i,j:int64):int64;
begin
if i -
02008-09-23 21:41:18@
function treedp(x,p:longint):longint;
var s,min,i:longint;
t:boolean;
begin
if f[x,p]>0then exit(f[x,p]);
case p of
1:begin
s:=0;
for i:=1 to son[x,0]do
begin
min:=treedp(son[x,i],1);
o:=treedp(son[x,i],2);
if min>o then min:=o;
o:=treedp(son[x,i],3);
if min>o then min:=o;
s:=s+min;
end;
treedp:=s+a[x];
end;
2:begin
if son[x,0]=0 then
begin
f[x,p]:=1000000;
exit(1000000);
end;
t:=false;
s:=0;
for i:=1 to son[x,0]do
begin
min:=treedp(son[x,i],1);
o:=treedp(son[x,i],2);
if min>o then min:=o else t:=true;
s:=s+min;
end;
if not(t)then
begin
min:=maxlongint;
for i:=1 to son[x,0]do
if min>f[son[x,i],1]-f[son[x,i],2]then
min:=f[son[x,i],1]-f[son[x,i],2];
s:=s+min;
end;
treedp:=s;
end;
3:begin
s:=0;
for i:=1 to son[x,0]do
s:=s+treedp(son[x,i],2);
treedp:=s;
end;
end;
f[x,p]:=treedp;
end;
0打成o郁闷…… -
02008-09-22 21:37:21@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msprogram p1144;
var v,wh,wh0,i,j,k,m,n:longint;
a:array[0..1501,-1..1501]of longint;
f,w:array[0..1501]of longint;
s1,s2,s3:array[0..1501]of longint;
function min(a,b:longint):longint;
begin
if a>b then min:=b else min:=a;
end;
procedure work(v:longint);
var i,j:longint;
begin
for i:=1 to a[v][0] do work(a[v][i]);
wh:=0;
for i:=1 to a[v][0] do
begin
wh0:=min(s1[a[v][i]],s2[a[v][i]]);
inc(wh,wh0);
end;
fillchar(m,sizeof(m),15);
if a[v][0]=0 then
begin
s1[v]:=m;
s2[v]:=w[v];
s3[v]:=m;
end;
for i:=1 to a[v][0] do
begin
wh0:=min(s1[a[v][i]],s2[a[v][i]]);
dec(wh,wh0);
inc(wh,s2[a[v][i]]);
if wh -
02008-09-15 20:18:46@
为什么最后2个点总过不了??!!!哪个牛人帮忙下...
-
02008-08-14 10:04:16@
第6个点最大赋值用MAXINT 太小 用 MAXLONGINT 会超范围, 用1000000 可以过
-
02008-08-12 15:53:14@
tree-dp(去-笛屁)
-
02008-08-07 12:08:52@
第一次写树状DP,看了大牛们的讲解终于写正确了,不过程序太丑了。。。。
-
02008-07-25 02:02:12@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms树形DP..
汗颜,今天RP真低,交了5次才AC. -
02008-09-16 14:45:48@
左看右看,看到一道弱题。来不及了,明天再来AC
最近树形DP做的多,大概会很轻松吧,哈哈~编译通过...
-
02007-11-03 20:55:48@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
转变为二叉树 -
02007-11-02 21:08:45@
第6个点竟然是因为最大值赋值为maxint太小……
-
02007-10-27 11:12:11@
顶CQP,我和你一样,只拿了79分~
阿弥陀佛~~ -
02007-10-26 19:31:09@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02007-10-19 23:00:15@
哈哈,.原来大家都想的是一样的方法...!
-
02007-09-22 21:36:31@
第6个点有什么特别要注意的地方,总是过不了