• 1566: [NOI2009]管道取珠


    Description


    Input
    第一行包含两个整数n, m,分别表示上下两个管道中球的数目。 第二行为一个AB字符串,长度为n,表示上管道中从左到右球的类型。其中A表示浅色球,B表示深色球。 第三行为一个AB字符串,长度为m,表示下管道中的情形。
    Output
    仅包含一行,即为 Sigma(Ai^2) i从1到k 除以1024523的余数。
    Sample Input
    2 1
    AB
    B

    Sample Output
    5
    HINT

    样例即为文中(图3)。共有两种不同的输出序列形式,序列BAB有1种产生方式,而序列BBA有2种产生方式,因此答案为5。
    【大致数据规模】
    约30%的数据满足 n, m ≤ 12;
    约100%的数据满足n, m ≤ 500。

    这个思路太好了,神了

    我们要求Ai的平方,就是要求效果相同的取出序列两两组合有多少种方案

    相当于有两个人在做这个游戏,你要求他们两个输出序列相同的方案数

    这样问题就转化成了求相同的取出序列有多少个,设f[x,y,x',y']表示第一行取到x个,第二行取到y个和第一行取到x'个,第二行取到y'个相同的序列有多少个

    最后答案就是f[n,m,n,m],因为x+y=x'+y'所以我们可以减少一维变成f[x,y,x']还可以用滚动数组优化空间(貌似bzoj上给的空间够大,直接开不会爆)

     1 const
     2     maxn=550;
     3     h=1024523;
     4 var
     5     f:array[0..1,-1..maxn,-1..maxn]of longint;
     6     a,b:array[0..maxn]of char;
     7     n,m,xi,yi:longint;
     8  
     9 function min(x,y:longint):longint;
    10 begin
    11     if x<y then exit(x);
    12     exit(y);
    13 end;
    14  
    15 procedure main;
    16 var
    17     i,j,l:longint;
    18 begin
    19     readln(n,m);
    20     for i:=1 to n do read(a[i]);readln;
    21     for i:=1 to m do read(b[i]);
    22     f[0,0,0]:=1;xi:=0;yi:=1;
    23     for l:=1 to n+m do
    24         begin
    25             for i:=0 to min(n,l) do
    26                 for j:=0 to min(n,l) do
    27                     begin
    28                         if a[i]=a[j] then inc(f[yi,i,j],f[xi,i-1,j-1]);
    29                         if b[l-i]=b[l-j] then inc(f[yi,i,j],f[xi,i,j]);
    30                         if a[i]=b[l-j] then inc(f[yi,i,j],f[xi,i-1,j]);
    31                         if b[l-i]=a[j] then inc(f[yi,i,j],f[xi,i,j-1]);
    32                         f[yi,i,j]:=f[yi,i,j]mod h;
    33                     end;
    34             xi:=xi xor 1;yi:=yi xor 1;
    35             fillchar(f[yi],sizeof(f[yi]),0);
    36         end;
    37     writeln(f[xi,n,n]);
    38 end;
    39  
    40 begin
    41     main;
    42 end.
    View Code
  • 相关阅读:
    本地安装xssing
    php弱类型
    XEE介绍
    XML注入介绍--XXE,XEE,xpath等
    MySQL注入load_file常用路径
    Sql注入中连接字符串常用函数
    三十三 Python分布式爬虫打造搜索引擎Scrapy精讲—数据收集(Stats Collection)
    三十二 Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy的暂停与重启
    三十一 Python分布式爬虫打造搜索引擎Scrapy精讲—chrome谷歌浏览器无界面运行、scrapy-splash、splinter
    三十 Python分布式爬虫打造搜索引擎Scrapy精讲—将selenium操作谷歌浏览器集成到scrapy中
  • 原文地址:https://www.cnblogs.com/Randolph87/p/3813051.html
Copyright © 2020-2023  润新知