题解

99 条题解

  • 0
    @ 2008-10-31 18:31:32

    哭...记忆化写的太丑了,不过还是过了

  • 0
    @ 2008-10-25 23:53:44

    感谢日文大牛。。。

  • 0
    @ 2008-10-23 23:55:26

    其绝对值不大于104 骗人的

    中间三个点没过的话,开int64

  • 0
    @ 2008-10-21 12:43:49

    编译通过...

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

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

    ├ 测试数据 03:答案错误...程序输出比正确答案长

    ├ 测试数据 04:答案错误...程序输出比正确答案长

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

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

    Unaccepted 有效得分:60 有效耗时:0ms

    program f;

    var

    n,m,i,j,k,p,t,l,max,min:integer;

    s,a:array[1..50,1..50,1..9] of int64;

    w:array[1..100] of integer;

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

    begin

    readln(n,m);fillchar(b,sizeof(b),0);fillchar(a,sizeof(a),0);fillchar

    (s,sizeof(s),0);

    for i:=1 to n do

    for k:=1 to m do

    for j:=k to n do s:=maxlongint;

    for i:=1 to n do begin read(w[i]);w:=w[i];end;

    for i:=1 to n do

    for j:=1 to n-m+1 do

    begin

    b:=(b+(w mod 10)+10) mod 10;

    a:=b;s:=b;

    end;

    for t:=2 to m do

    for k:=t to n-m+t do

    for i:=1 to n do

    for p:=1 to t-1 do

    for l:=p to k+p-t do

    begin

    if i+ln then begin max:=a*a[(i+l) mod n,k-l,t-

    p];min:=s*s[(i+l) mod n,k-l,t-p];end

    else begin max:=a*a; min:=s*s

    ;end;

    if max>a then a:=max;

    if minmax then max:=a;

    if s

  • 0
    @ 2008-10-10 13:56:47

    多谢楼上那位20-40-60-100 的仁兄,要不我死活也不知道怎么把我的60分变成100。

  • 0
    @ 2008-10-09 18:32:10

    what?稀里糊涂的就过了...

  • 0
    @ 2008-09-29 15:38:23

    由于数据范围较小,故可以考虑O(n^2*m^2)的算法,把不同的环分情况DP,读入的时候 readln(ap[i]);

    ap[i]:=(ap[i]+10000) mod 10;

    f为1-i分成k各部分的最值。

    if pmin>fmin[j,k-1]*((a[i]-a[j]) mod 10) then pmin:=fmin[j,k-1]*((a[i]-a[j]) mod 10);

    if pmax

  • 0
    @ 2008-09-27 10:16:35

    阶段(P):分成P部分

    状态(I,J):第i到j间分成P部分的最大、最小值

    决策(K):Ai..Ak分成P-1部分,Ak+1..N分成1部分的最大、最小值

    动态转移方程:

    Fmax=max{Fmax2*A[K+1,N]};

    Fmin=min{Fmin2*A[K+1,N]};

    一次性AC

  • 0
    @ 2008-09-24 15:29:05

    竟然忘了负数取模,调了好久。这是普及组啊,有点害怕……

  • 0
    @ 2008-09-21 16:47:47

    数据范围这么小,一看就像普及组的。。

  • 0
    @ 2008-09-13 18:05:37

    {f表示前 i 个 切 j 次 f:=min{f[k,j-1]*deal(s[i]-s[k])}(1

  • 0
    @ 2008-09-06 15:07:55

    终于,终于

    在这题上过了我的第80题了!

    ··

    要哭了

    ·我要感谢TVB。CCTV,MTV,,亚洲卫视,,BBC···

  • 0
    @ 2008-09-02 16:36:02

    我是超级大牛!我是王哲明大牛!!哈哈哈

    还有谁比我牛?

  • 0
    @ 2008-08-23 20:16:14

    我用32767得80分

    用maxlongint得40分。。。。。。。。。。。。。。。。。。。。。。

    原来是int64啊

  • 0
    @ 2008-08-21 17:27:19

    O(n^3*m)算法。。。。。。

    处理环时只需放入数组两遍即可!用循环数组在mod时容易出错,而且复杂度较高!

    处理和时用前缀和比较方便!而且最快!

    。。。。。。。。。。。。。

  • 0
    @ 2008-08-18 08:55:00

    这道题对我们这种初学者不简单啊,这可恶的题,10^4却写104,我足足在这里栽了3次,吸取经验

  • 0
    @ 2008-08-12 22:25:47

    O(n^3m)...

  • 0
    @ 2007-11-10 20:50:35

    呵呵!我们圈内将这一类F[I,J]=F[I,K]%W[K+1,J]类型的称之为 毛里求斯算法啊!!!

  • 0
    @ 2007-11-08 23:46:17

    动态规划最重要的就是边界条件,边界初始化一定要注意,边界不为零的问题一定要注意,先初始化,在递推过程中用到的中间值必须都已赋值(初始化),否则极易出现错误,我就是因为这个挂了3次

  • 0
    @ 2007-10-30 22:23:41

    f(i,j) = max{f(i,k) * digit(k,j)}

信息

ID
1218
难度
5
分类
动态规划 | 环形DP 点击显示
标签
递交数
2836
已通过
1083
通过率
38%
被复制
17
上传者