好题,这道题体现了换一个角度计数的思想

a1^2+a2^2+……ak^2=(变成第1种输出序列的操作序列数目)^2+(变成第2种输出序列的操作序列数目)^2……

脑洞大一点,这就相当于两个操作序列变成相同输出序列的对数(包括自己和自己)

于是dp即可……dp[i,j,k]表示输出到第i个,第一个操作序列在上面取了j个,第二个操作序列在上面取了k个,怎么弄大家都会……

 const mo=;

 var s1,s2:array[..] of char;
p,m,n,i,j,k,j1,k1:longint;
f:array[..,..,..] of longint; procedure reverse;
var s:ansistring;
begin
readln(s);
for i:= to n do
s1[n-i+]:=s[i];
s1[n+]:='$';
readln(s);
for i:= to m do
s2[m-i+]:=s[i];
s2[m+]:='#';
end; begin
readln(n,m);
reverse;
f[,,]:=;
for i:= to m+n do
begin
p:=-p;
fillchar(f[p],sizeof(f[p]),);
for j:= to n do
for k:= to n do
if f[-p,j,k]>=mo then f[-p,j,k]:=f[-p,j,k] mod mo;
for j:= to n do
for k:= to n do
begin
j1:=i--j;
k1:=i--k;
if (j1>=) and (k1>=) and (j1<=m) and (k1<=m) then
begin
if s1[j+]=s1[k+] then inc(f[p,j+,k+],f[-p,j,k]);
if s1[j+]=s2[k1+] then inc(f[p,j+,k],f[-p,j,k]);
if s2[j1+]=s1[k+] then inc(f[p,j,k+],f[-p,j,k]);
if s2[j1+]=s2[k1+] then inc(f[p,j,k],f[-p,j,k]);
end;
end;
end;
writeln(f[p,n,n] mod mo);
end.

最新文章

  1. 自定义搭建PHP开发环境
  2. SSH(Struts2+Spring+Hibernate)框架搭建流程
  3. jQuery图片延迟加载
  4. Emgu.CV 播放视频
  5. xcode下载
  6. LL基本姿势
  7. gdb调试core文件
  8. Vmware Ubuntu 虚拟机与Windows主机共享文件夹
  9. Layout Resource官方教程(3)在layout中用include嵌入其它layout
  10. PreparedStatement執行sql語句
  11. MySQL导入较大sql文件报错max_allowed_packet
  12. nginx上传模块nginx_upload_module和nginx_uploadprogress_module模块进度显示,如何传递GET参数等。
  13. ImageView图片不显示---------记glide框架使用时遇到的问题
  14. WPF控制动画开始、停止、暂停和恢复
  15. 2015 多校联赛 ——HDU5316(线段树)
  16. bzoj4830 hnoi2017 抛硬币
  17. Android开发最强模拟器Genymotion的安装及使用教程。附注释图详解
  18. .NET CORE 1.1 迁移到.NET 2.0正式版
  19. mysql5.7主从复制配置——读写分离实现
  20. SharePoint 2013 启用 以其他用户身份登陆(Sign in as different user)

热门文章

  1. C#中读取二维数组每位的长度
  2. 在eclipse里的 flex 没有可视化的编辑
  3. C#常用简单线程实例
  4. PHP之mysql_real_escape_string()函数讲解
  5. tomcat 解析(四)-处理http请求过程
  6. sublime text3 配置插件包记录
  7. Unrecognized Windows Sockets error: 0: JVM_Bind异常
  8. 李洪强iOS开之【零基础学习iOS开发】【02-C语言】04-常量、变量
  9. spring中的aware接口
  10. win32 api ShouCursor 根据内部计数器 是否&gt;= 0 决定是否 显示光标,每true时计数器+1,每false-1