92 条题解

  • 0
    @ 2009-09-20 15:49:55

    编译通过...

    ├ 测试数据 01:答案正确... 72ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:72ms

    没有秒杀...RP不好

    直接简排+剪枝......

    貌似不排序剪枝跟没剪差不多

    排序以后剪枝就很强了...

  • 0
    @ 2009-09-19 10:47:48

    Accepted 有效得分:100 有效耗时:0ms

    交了3次,注意读完了n个数后要readln!然后eof就不会错了~

    只用邻接矩阵,效率还挺高的嘛~~~剩余最大价值不要包含前面的就可以啦~

  • 0
    @ 2009-09-16 17:18:20

    好吧.....这个只加上最优化剪枝是不行的(剩余的数都加上没有最优值大就剪去)

    它还得再加个排序.......吐血......

  • 0
    @ 2009-08-19 12:20:37

    var{o(>﹏max then max:=s;

    for i:=k to n do

    if c[i]=0 then

    begin

    m:=0;

    for j:=1 to b do

    inc(c[b]);

    for j:=i+1 to n do

    if c[j]=0 then inc(m,a[j]);

    if s+m+a[i]

  • 0
    @ 2009-08-12 10:50:46

    如对本题有疑问可以参看我的题解:http://xujieqi.blog.hexun.com/35722312_d.html

  • 0
    @ 2009-08-06 10:59:35

    编译通过...

    ├ 测试数据 01:答案正确... 25ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 338ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:363ms

    不用排序也能轻松过的,只要用最优性剪枝就行了

    代码也很短:

    program p1048;

    var

    b:array[0..100,0..100] of longint;

    a,c:array[1..100] of longint;

    i,j,n,tt,kk,max:longint;

    procedure dfs(k,s:longint);

    var

    i,j,m:longint;

    begin

    if s>max then max:=s;

    for i:=k to n do

    if c[i]=0 then

    begin

    m:=0;

    for j:=1 to b do

    inc(c[b]);

    for j:=i+1 to n do

    if c[j]=0 then inc(m,a[j]);

    if s+m+a[i]

  • 0
    @ 2009-07-27 12:53:21

    编译失败...|错误号:-1

    这是什么意思啊?

  • 0
    @ 2009-07-27 03:44:41

    当前价值+剩余所有价值

  • 0
    @ 2009-07-24 16:05:47

    话说神这东西真的很神奇。。

    编译通过...

    ├ 测试数据 01:运行超时...

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 634ms

    ├ 测试数据 10:答案正确... 259ms

    ---|---|---|---|---|---|---|---|-

    Unaccepted 有效得分:90 有效耗时:893ms

    编译通过...

    ├ 测试数据 01:答案正确... 150ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 72ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:222ms

    type

    arr1=array [0..101] of longint;

    var{神啊,让我过吧}

    i,n,maxcount,s1,t:longint;

    a:array [0..101] of longint;

    b:array [0..101,0..101] of boolean;

    c:array [0..101] of longint;

    s:arr1;

    function gu(count,p:longint):boolean;

    begin

    for i:=p+1 to n do

    count:=count+a[i];

    if countmaxcount then maxcount:=count;exit;end;

    if not gu(count,p) then exit;

    p:=p+1;

    if tu(p,s) then

    try(p,0,s,count)

    else

    begin

    inc(s[0]);

    s[s[0]]:=p;

    count:=count+a[p];

    try(p,1,s,count);

    s[s[0]]:=0;

    dec(s[0]);

    count:=count-a[p];

    try(p,0,s,count);

    end;

    end;

    procedure qsort(l,r:longint);

    var

    i,j,m,t:longint;

    begin

    i:=l;j:=r;

    m:=a[random(r-l+1)+l];

    while im do inc(i);

    while a[j]

  • 0
    @ 2009-07-07 17:02:10

    终于AC了

    感觉剪枝力度很小,但实际上力度很大.

    还有排不排序,差距也很大.

  • 0
    @ 2009-06-27 15:16:25

    var

    i,n,x,y,max,maxn,leng :integer;

    g,a,stack :array[0..55]of integer;

    c :array[0..55,0..55]of boolean;

    procedure quicksort(i,j:integer);

    var

    x,y,z,k,p :integer;

    begin

    x:=i;

    y:=j;

    z:=(a[x]+a[y])shr 1;

    while xz do inc(x);

    while a[y]

  • 0
    @ 2009-05-26 18:47:18

    强大的puppy

  • 0
    @ 2009-04-16 18:17:58

    这题可以用贪心+随机化(毕竟N一个固定的值T,

    那么 就做出选取Ai的决策,并做相应调整

    }

    Smax=Max{过程中出现的S}

    这个就是脑残版的遗传算法

  • 0
    @ 2009-04-02 18:33:39

    灵异事件,

    qsort=超时;

    冒泡=ac

    没法秒杀.....

    核心代码

    procedure dfs(k,maxx:longint);

    var i,j,l:longint;

    flag:boolean;

    begin

    if maxx>max then max:=maxx;

    if maxx+yy[k]

  • 0
    @ 2009-03-18 16:01:52

    邻接表+搜索剪枝

  • 0
    @ 2009-03-12 19:53:19

    排序后

    最优化剪枝的DFS

  • 0
    @ 2009-03-12 19:23:12

    0ms,

    写了半天方法,发现和楼下的一样……

  • 0
    @ 2009-02-16 20:57:50

    终于AC了。本题的思路就是DFS+优化。

    现将原来的书写质量从大到小排个序,然后开始搜索。

    再加上最优化剪枝(当前书写质量总和加上剩余可取的和大于max)就能秒杀了。

    p.s. 由于细节问题,我WA了n次……

  • 0
  • 0
    @ 2008-11-13 09:39:48

    解题思路没有一个人写,只会写些别人写过的快排,把自己的分数贴上去有个屁用!

信息

ID
1048
难度
7
分类
搜索 | 搜索与剪枝 点击显示
标签
递交数
2372
已通过
422
通过率
18%
被复制
15
上传者