题解

115 条题解

  • 0
    @ 2006-11-12 16:43:26

    个人认为第11组数据有误 ……603,306……

  • 0
    @ 2006-11-12 21:46:10

    我觉得这个题很明显要DFS啊

    怎么会分到“DP”里了呢?

    ps.

    只有第一组数据是对的.........

    后面的全都不是递增的.........

  • 0
    @ 2006-11-11 19:57:11

    你说你们,都是二中的。。。。

    二中人的题目不应该有这个样的疏忽。。。。。

  • 0
    @ 2006-11-13 11:22:19

    没问题了………………

  • 0
    @ 2006-11-11 12:29:36

    ...莫非...

    AC的牛牛...是因为看了这条记录吗...

    http://www.vijos.cn/Record_Show.asp?id=239519

  • 0
    @ 2006-11-11 06:45:17

    YTEZ兄弟们的题实在不敢恭维

  • 0
    @ 2006-11-10 22:59:20

    同样认为数据有错。。。

    顺便问一下,radiant大牛是如何AC的?

  • 0
    @ 2006-11-13 11:10:39

    同志们,数据已经搞定了,请尽情地作吧...不好意思咯~~~

  • 0
    @ 2006-11-13 12:18:05

    改完数据后一次ac...0ms

  • 0
    @ 2006-11-10 22:34:09

    感觉数据是错的..

    随便举个例子---|标准输出:8,0,57,83,528,907,378,515,5214,8261,0203,81160,18898,95395,935606,150835,64400495,1016480,01020662

  • 0
    @ 2006-11-10 22:07:16

    357159

    标准数据3,2,50,71,81,819,632,440,074,1694,9680,7588,

    5584,886975,43733,04973,610515,0749414,2284243,80828375

    标准数据

    5,5,04,74,00,971,449,791,703,9823,2607,9320,2261,749225,

    26574,24030,600300,1063449,5479906,36158970

    递增序列??????????

    请求改正!

  • -1
    @ 2009-10-27 11:20:49

    简单一维DP。。还耗了我两节课。。

    忘记去年的思路了。。重新写了一个。。思路简单。。直接给方程了:

    f[i]=max{f[k]|s[k+1,i]>m} m表示前i个数划分k逗号的最大值。。

    唯一委琐的应该就是打印吧。。反正我的打印很委琐。。

    程序如下:

    var t:string;

    s,m:array[0..80,0..80] of int64;

    f,g:array[1..80] of int64;

    i,j,k,l:longint; max:int64;

    procedure print(n:longint);

    begin

    if n=0 then exit;

    print(g[n]);

    if nl then write(copy(t,k+1,n-k)+',') else writeln(copy(t,k+1,n-k));

    k:=n;

    end;

    begin

    readln(t);

    l:=length(t);

    for i:=1 to l do

    for j:=i to l do

    val(copy(t,i,j-i+1),s);

    fillchar(f,sizeof(f),0);

    for i:=1 to l do m:=s[1,i];

    for i:=1 to l do

    begin

    max:=-1;

    for k:=0 to i-1 do

    begin

    if (f[k]>max)and(s[k+1,i]>m[k,f[k]]) then

    begin

    f[i]:=f[k]+1;

    m:=s[k+1,i];

    g[i]:=k;

    end else

    if (f[k]=max)and(s[k+1,i]=m[k,f[k]]) then

    begin

    m:=s[k+1,i];

    g[i]:=k;

    end;

    end;

    end;

    k:=0;

    print(l);

    end.

  • -2
    @ 2009-11-09 00:18:44

    厄...无聊之中发现一片红色中有一个绿色很不和谐...

    就看了看...觉得以前的思路没什么错就把数组全都开到int64和ansistring...

    结果过了......

    囧啊...

  • -2
    @ 2009-10-27 19:41:26

    编译通过...

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

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

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

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

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

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

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

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

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

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

    ├ 测试数据 11:答案正确... 212ms

    ├ 测试数据 12:答案正确... 212ms

    ├ 测试数据 13:答案正确... 181ms

    ├ 测试数据 14:答案正确... 196ms

    ├ 测试数据 15:答案正确... 196ms

    ├ 测试数据 16:答案正确... 181ms

    ├ 测试数据 17:答案正确... 212ms

    ├ 测试数据 18:答案正确... 212ms

    ├ 测试数据 19:答案正确... 181ms

    ├ 测试数据 20:答案正确... 228ms

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

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

    丑死了~~

  • -3
    @ 2009-11-10 00:23:46

    人道主义地,写题解。

    f表示前i个字符,划分为j个部分,最后一个数的最小。

    则有状态转移方程:f=min{s[k,i],j

信息

ID
1306
难度
6
分类
动态规划 点击显示
标签
(无)
递交数
1046
已通过
303
通过率
29%
被复制
4
上传者