题解

174 条题解

  • 0
    @ 2009-11-10 09:12:54

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

    一遍AC...................当上管理员,人品就爆发

  • 0
    @ 2009-11-05 21:08:59

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

    oh ye!!

  • 0
    @ 2009-11-04 19:02:37

    貌似用手动输入会爆掉

    我自己用文件录入与大牛们的标解对比最苛刻的数据 答案完全相同...

    但是过不了 怎么办?

  • 0
    @ 2009-11-04 11:10:19

    一定要记录路径长度!!!!

    取最短的!!!!

  • 0
    @ 2009-10-31 17:01:28

    为何先后扫不对(78分),同时扫就对了?

  • 0
    @ 2009-10-22 19:08:51

    Orz 尖端才子

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2009-10-18 08:17:03

    for i:=1 to m do

    for j:=1 to n do read(a);

    一道水题,竟然降了我的AC率!!!!

    两次把题目看错:

    1:题目结尾说按顺序输出,结果我写了个quick-sort对房间号排序,自然是挂了

    2:最愚蠢的错误。。。。

    题目中说读入数据的第i行代表第i层楼的每个签证员收取的费用,但是我看成了读入数据是按楼层的形式排布的(第一行代表最高层),这个错误让我浪费了N多的时间!!!!!!!!!注意审题!!!!!!

  • 0
    @ 2009-10-15 22:33:09

    小水题。。一次AC。。拿来练DP路径不错。。

    方程f=min{f,f,f}+a

    然后开个数组记录取得最优决策时的i和j,最后递归打出来就完了。。

    我的DP顺序是第一遍先上后左,第二遍右。。

    程序就不晒了。。很无聊的。。

  • 0
    @ 2009-10-14 13:58:53

    开始写了个记忆化搜索……后来发现它总是在相邻的两个上转悠……于是想用DP解决……又发现不好更新值,那么干脆先找一个一定不能被其它值更新的值来更新别的……时间复杂度mnlogn。

    或者干脆来回两趟。……时间复杂度mn……。

    第一种思路类似dijkstra,第二种吗,自己想得……

    想了想还是第二种好……

    注意可以滚动数组……

    还有楼下的……没必要int64。

    话说我交了2次……AC两次。

    晒晒主要代码:

    for i:=2 to m do

    begin

    f[1]:=f[1]+a;

    for j:=2 to n do

    if f[j-1]

  • 0
    @ 2009-10-13 19:57:48

    f=min{f,f,f}+map

    dp时记录路径,dp完了递归打路径

    方程简单,数据猥琐...

    int64!!!

    每个转移要有单独的for...

    不知道为什么不能加一圈最大值后用两个for...

    10次AC...

  • 0
    @ 2009-10-12 23:13:06

    编译通过...

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

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

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

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

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

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

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

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

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

    var i,j,k,m,n,min,k1,k2,u:longint;

    w,f,pre1,pre2:array[0..100,0..500] of longint;

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

    begin

    read(m,n);readln;

    for i:=1 to m do

    begin

    for j:=1 to n do

    read(w);

    readln;

    end;

    for i:=1 to n do

    f[1,i]:=w[1,i];

    for i:=2 to m do

    begin

    min:=maxlongint;

    for j:=1 to n do

    if f

  • 0
    @ 2009-09-16 22:06:25

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

    好有成就感,16%的题竟然被我一次ac了……

  • 0
    @ 2009-09-14 19:50:04

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

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

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

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

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

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

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

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

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

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

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

    由于没有CHECK,又舍不得AC率,又不想开小号了,于是就抄个代码,反正会做了,就是左右各扫一遍,有CHECK肯定AC。

  • 0
    @ 2009-09-09 16:28:13

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

    要考虑清楚 为什么对于每一行,左扫一遍,右扫一遍就可以保证此行最优。

    这是关键,其余就是普通的动规了。

  • 0
    @ 2009-09-09 13:20:16

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

    .....

    两个方向DP一起做两次。。。

  • 0
    @ 2009-09-07 20:05:15

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

    菜是沙茶——先是以为f由f,f,f转移过来不知道到底该从左到有还是该从右到左;(其实分别做一遍就行了)

    然后又是把输出顺序搞错;最后数组开小了216错误;

    ……面壁中…………

  • 0
    @ 2009-09-07 20:04:51

    water

    water

    water

    water

    water

    water

    water

    water

  • 0
    @ 2009-09-06 16:27:33

    f:=min(f,f,f)+a!!!!!!

  • 0
    @ 2009-09-05 18:31:08

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

    var

    m,n,i,j,k,mx,my:longint;

    f,a:array[1..500]of int64;

    path:array[1..500,1..500]of longint;

    procedure print(m,i:longint);

    begin

    if m=0 then exit;

    if path[m,i]=i then print(m-1,i)

    else print(m,path[m,i]);

    writeln(i);

    end;

    begin

    readln(m,n);

    for i:=1 to m do

    begin

    for j:=1 to n do

    begin

    read(a[j]);path:=j;

    f[j]:=f[j]+a[j];

    end;

    for k:=1 to 2 do

    begin

    for j:=2 to n do

    if f[j]>f[j-1]+a[j] then

    begin

    f[j]:=f[j-1]+a[j];

    path:=j-1

    end;

    for j:=n-1 downto 1 do

    if f[j]>f[j+1]+a[j]then

    begin

    f[j]:=f[j+1]+a[j];

    path:=j+1;

    end;

    end;

    end;

    my:=maxlongint;

    for i:=1 to n do

    if f[i]

  • 0
    @ 2009-09-01 17:12:46

    比那只猪HILL简单多了...........

    DP很好想 ...........

信息

ID
1139
难度
7
分类
动态规划 点击显示
标签
递交数
5212
已通过
860
通过率
17%
被复制
7
上传者