• HNOI2008 GT 考试


    我不明白为什么是DP,我感觉和vijos的核电站问题(https://www.vijos.org/p/1232)差不多啊

    这是别人的题解:http://www.cnblogs.com/Skywalker-Q/archive/2011/03/17/1987395.html

     1 type matrix=array[0..30,0..30] of longint;
     2 var n,m,i,j,k,p,sum:longint;
     3     a,ans,zero:matrix;
     4     s,ts:string;
     5     ch:char;
     6 function mul(a,b:matrix):matrix;
     7  var i,j,k:longint;
     8  begin
     9  fillchar(mul,sizeof(mul),0);
    10  for i:=0 to m-1 do
    11   for j:=0 to m-1 do
    12    for k:=0 to m-1 do
    13     mul[i,j]:=(mul[i,j]+a[i,k]*b[k,j]) mod p;
    14  end;
    15 function power(a:matrix;k:longint):matrix;
    16  begin
    17  power:=zero;
    18  while k>0 do
    19   begin
    20   if k and 1=1 then power:=mul(power,a);
    21   a:=mul(a,a);k:=k>>1;
    22   end;
    23  end;
    24 begin
    25  readln(n,m,p);
    26  readln(s);
    27  for j:=0 to m-1 do
    28   zero[i,i]:=1;
    29  for j:=0 to m-1 do
    30   for ch:='0' to '9' do
    31    begin
    32    ts:=copy(s,1,j)+ch;
    33    for k:=j+1 downto 0 do
    34     if copy(s,1,k)=copy(ts,j-k+2,k) then break;
    35    inc(a[j,k]);
    36    end;
    37  ans:=power(a,n);
    38  for i:=0 to m-1 do sum:=(sum+ans[0,i]) mod p;
    39  writeln(sum);
    40 end.
    41                           
    View Code

    等我改一下的我的程序再发上来……

  • 相关阅读:
    java操作Redis
    Redis安装和基本操作
    IDEA使用教程+JRebel破解
    java环境配置
    qtp10安装步骤(比较完整)
    c++第一章1.6
    软件测试第二章作业
    c++作业22题
    c++第二周阶段小测2
    oracle12c数据库第一周小测验
  • 原文地址:https://www.cnblogs.com/zyfzyf/p/3774009.html
Copyright © 2020-2023  润新知