200 条题解
-
0mike_nzk LV 10 @ 2008-12-29 13:14:48
还是用集合好。。。
-
02008-11-23 09:02:09@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
水题 -
02008-11-14 00:25:01@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:鸢刚?.. 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms庆祝自己在VJ 的第90个AC 可能也是最后一个AC了
判定背包+记录路径这里不推荐滚动数组,在记录路径时判断多解有一个比较方便的判断
若逆推至第K个物品,当前重量为VK
若f[k-1][vk] and f[k-1][vk-m[k]] = true 此时是有多解的。记录路径是可以使用字符串的,但注意:必须使用ansistring 这个问题挂了我4次。
第3个点~很诡异~~
-
02008-11-12 08:12:43@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms同理...
-
02008-11-06 18:55:53@
为什么自己的数据都能过,就是不能Ac。。
大牛们有没有什么特殊的数据啊。。 -
02008-11-06 17:08:08@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案错误...程序输出比正确答案长
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:90 有效耗时:0ms
那位大牛告诉我一下是为什么? -
02008-11-06 09:12:00@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
其实很简单,不要想复杂! -
02008-11-05 12:57:51@
话说下面那个把记录刷得全红的2050的Unaccepted和100的有效得分是怎么同时得来的?
-
02008-11-04 23:20:03@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms数据很变态,注意0和sum.....
-
02008-11-04 18:18:10@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案错误...程序输出比正确答案长
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms谁能告诉我为什么....
-
02008-10-29 20:26:48@
第5组数据多解,多达maxlongint以上
所以if f[tot]>1 then writeln(-1);无效 -
02008-10-28 19:16:10@
菜鸟
请问why???
if f=0
才改变路径?? -
02008-10-27 13:00:46@
数据没有问题
记录路径的时候有点问题WA了一次
-
02008-10-25 11:28:04@
├ 测试数据 04:答案错误...
├ 标准行输出 3...
├ 错误行输出 0第四組是不是改了?咱機器上測43231的數據正確...
其他貌似都對 -
02008-10-23 10:39:20@
一维背包。用字符串记录路径即可
-
02008-10-15 20:52:31@
此题又是恶心
不知道第九个点怎么回事
迷迷糊糊就AC了MAIN CODE[不要抄哦,做过手脚]
其实就是一个背包记录路径,我曾经还研究过
read(m,n);
for i:=1 to n do
begin
read(a[i]);
z:=z+a[i];
end;
z:=z-m;
if z1
then writeln(-1;
writeln(z); -
02008-10-14 20:47:51@
题目理解错了 做了一个半小时
再看一遍题目 10分钟ac真的是郁闷啊
做题要看清题目啊
切记切记 -
02008-10-14 11:37:45@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms第101题
并且庆贺N天不交题后的首次AC -
02008-10-11 11:14:40@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms这题快做死我了,说说思路把。
状态转移方程if f[j]0 then f[j+a[i]]:=f[j+a[i]]+f[j];
(只要不是傻子都应该会把)
比较困难的是记录路径。现在提供一种猥琐的方法。
用f数组记录当前数值有多少种情况
用g数组记录当前数值是由哪一个数值推过来的,即前一个数值
用h数组记录加上的这个数值是第几号。
最后从f[m]倒着推回去就行了。*如果过程中遇到多个方案都能到一个数值,不要修改,用第一次走到的值就行。
无法理解就请使用这个测试数据5
1
3
5
8
4
ans:1 2 3 4 5
另外,测试数据中有存在
1000
2
1
2
这种bug数据。因此需判断当Totalw无意义时,直接输出0;
最后附上我的程序,虽然vijos不让附,但有时候调不出来确实让人很头疼。
program p1071(input,output);
var
i,j,n,m,t:longint;
a,s:array[1..100]of longint;
f,g,h:array[0..100000]of longint;
begin
readln(t);
readln(n);
for i:=1 to n do begin readln(a[i]); inc(m,a[i]); end;
m:=m-t;
if m1 then writeln('-1');
if f[m]=1 then for i:=j downto 1 do write(s[i],' ');
end. -
02008-10-10 22:41:12@
第四个数据我自己测过是对的,但vijos就是不给我过,
逼我cheat!!