zoukankan      html  css  js  c++  java
  • bzoj 1037: [ZJOI2008]生日聚会Party (dp)

    dp,但是要顺推容易点

    const
      mm=12345678;
    var
      f:array[0..1,0..200,0..20,0..20]of longint;
      n,m,kk,now,sum,i,j,k1,k2:longint;
     
    function max(x,y:longint):longint;
    begin
      if x<y then exit(y);
      exit(x);
    end;
     
    begin
      readln(n,m,kk);
      now:=0;
      f[now][1,1,0]:=1;
      f[now][0,0,1]:=1;
      for i:=1 to n+m-1 do begin
        fillchar(f[1-now],sizeof(f[1-now]),0);
        for j:=0 to n do begin
          if (j>i) and (i-j>m) then continue;
          for k1:=0 to kk do
            for k2:=0 to kk do
              if f[now][j,k1,k2]>0 then begin
                if (k1<kk) and (j<n) then begin
                  inc(f[1-now][j+1,k1+1,max(k2-1,0)],f[now][j,k1,k2]);
                  f[1-now][j+1,k1+1,max(k2-1,0)]:=f[1-now][j+1,k1+1,max(k2-1,0)] mod mm;
                end;
                if (k2<kk) and (i-j<m) then begin
                  inc(f[1-now][j,max(k1-1,0),k2+1],f[now][j,k1,k2]);
                  f[1-now][j,max(k1-1,0),k2+1]:=f[1-now][j,max(k1-1,0),k2+1] mod mm;
                end;
              end;
        end;
        now:=1-now;
      end;
      sum:=0;
      for i:=0 to kk do
        for j:=0 to kk do
          sum:=(f[now][n,i,j]+sum) mod mm;
      writeln(sum);
    end.
    View Code
  • 相关阅读:
    inotify事件监控
    NFS网络文件共享服务
    Rsync数据同步服务
    SSH连接原理及ssh-key讲解
    C语言I博客作业04
    C语言l博客作业03
    C语言I博客作业02
    定义一个计算字符串高度的方法
    字典转模型
    UIScrollView和UIPageControl
  • 原文地址:https://www.cnblogs.com/Macaulish/p/4358203.html
Copyright © 2011-2022 走看看