62 条题解
-
0Devil【Law】 LV 8 @ 2009-11-06 20:34:20
总算A了!!!
太辛苦了。
N多细节问题!!!!! -
02009-10-24 11:10:34@
并查集+背包
一次秒杀! -
02009-10-15 22:00:52@
并查集+分组背包=一次AC
-
02009-10-14 20:20:38@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms最后打成READ了呜呜
话说分组背包很强大 -
02009-10-10 09:39:33@
编译通过...
├ 测试数据 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-09-28 13:27:34@
背包9讲理 循环顺序确实有些不太对
-
02009-09-20 09:47:52@
我想我已经疯了 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
提交N次的30分。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
天真的以为肯定是DP悲剧了。。。。。。。。。。。。。。。。。。。。。。。。。。
最终在一个过程中发现了那个万恶的错误。。。。。。。。。。。。。。。。。。。。
修改前...
for i:=1 to n do
if father[i]=i then
begin
inc(all);
b[i]:=all;
vc[all]:=1;
fv[all,1]:=v[i];
fw[all,1]:=w[i];
end
else
begin
p:=b[father[i]];
inc(vc[p]);
fv[p,vc[p]]:=v[i];
fw[p,vc[p]]:=w[i];
end;修改后...
begin
for i:=1 to n do
if father[i]=i then
begin
inc(all);
b[i]:=all;
vc[all]:=1;
fv[all,1]:=v[i];
fw[all,1]:=w[i];
end;
for i:=1 to n do
if father[i]i then
begin
p:=b[father[i]];
inc(vc[p]);
fv[p,vc[p]]:=v[i];
fw[p,vc[p]]:=w[i];
end;
end;。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
-
02009-09-20 15:01:01@
囧一个。。。滚动数组的f1打成了f就没过了。。
说正事吧,这题其实不复杂,就是并查集加分组背包,不过感觉背包九讲里的一维数组伪代码貌似有点问题,我是用滚动数组来解决空间问题的
PS:此题能一维数组解么?我没说是用滚动数组的方法,知道的还请站内信告诉下,谢谢了。。。 -
02009-08-20 23:50:23@
背包九讲造福百姓啊~
不过里面讲的分组背包的伪代码是
for 所有的组k
for 所有的i属于组k
for v=V..0
f[v]=max{f[v],f[v-c[i]]+w[i]}
不对吧!!!!!!!!因为同组优先的话,可能造成冲突的。应该是
for 所有的组k
for v=V..0
for 所有的i属于组k
f[v]=max{f[v],f[v-c[i]]+w[i]} -
02009-08-19 14:47:08@
编译通过...
├ 测试数据 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-15 15:24:08@
其实就和金明的预算方案反一下吗,分组背包只取一个
要细心..... -
02009-08-08 00:10:13@
40分的,我找到原因了
除了在getFather()函数里和初始化
不要直接访问father[]数组 -
02009-08-06 16:31:17@
编译通过...
├ 测试数据 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-06 02:50:55@
`
\
秒杀`\
其实也不怎么难
我是通过DFS将整一条之链揪出来(据说叫floodfill^-^)
然后就是一个 分组背包问题 (背包9讲中有讲到,背包9讲是好东西,一定要看)
其中 我还用了滚动数组,因为N -
02009-08-05 20:15:22@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms五分钟学完并查集和分组背包 WA了一次 还可以
-
02009-08-03 17:08:44@
汗啊,半小时写完的代码结果改了一下午.........
并查集写错了
我郁闷了....很久..很久...---|---|---|---|---|---|---|---|---|---|---|-
编译通过...
├ 测试数据 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-08-03 13:31:45@
谁能给个数据啊,我总是4个点,哭!!
-
02009-06-08 20:51:46@
Orz DD_engi
一套背包九讲不知帮助了多少迷茫中的人.. -
02009-05-27 14:43:53@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
其实不用并查集的。。。大家都怎么了? 典型的floodfill + dp -
02009-04-18 16:00:06@
花半小时学并查集...
花10分钟学分组背包...
花半小时编程...
我快吐了...
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms并查集
function findf(x:integer):integer;
begin
if f[x]=x then exit(x) ;
f[x]:=findf(f[x]);
exit(f[x]);
end;
for i:= 1 to m do
begin
f[i]:=i;
ng[i]:=0 ;
readln(p[i],w[i]);
end;
for i:= 1 to n do
begin
readln(x,y);
fx:=findf(x);
fy:=findf(y);
f[fx]:=fy;
end;
for i:= 1 to m do
begin
fi:=findf(i);
inc(ng[fi]);
g[fi,ng[fi]]:=i;
end;分组背包
for i:= 1 to m do
if ng[i] > 0 then
for j:= bw downto 0 do
for k:= 1 to ng[i] do
begin
a:=g;
if j - w[a] >= 0 then
if bb[j] < bb[j-w[a]] + p[a] then
bb[j]:=bb[j-w[a]] + p[a];
end;