bzoj1566
2024-10-19 11:52:05
好题,这道题体现了换一个角度计数的思想
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.
最新文章
- 自定义搭建PHP开发环境
- SSH(Struts2+Spring+Hibernate)框架搭建流程
- jQuery图片延迟加载
- Emgu.CV 播放视频
- xcode下载
- LL基本姿势
- gdb调试core文件
- Vmware Ubuntu 虚拟机与Windows主机共享文件夹
- Layout Resource官方教程(3)在layout中用include嵌入其它layout
- PreparedStatement執行sql語句
- MySQL导入较大sql文件报错max_allowed_packet
- nginx上传模块nginx_upload_module和nginx_uploadprogress_module模块进度显示,如何传递GET参数等。
- ImageView图片不显示---------记glide框架使用时遇到的问题
- WPF控制动画开始、停止、暂停和恢复
- 2015 多校联赛 ——HDU5316(线段树)
- bzoj4830 hnoi2017 抛硬币
- Android开发最强模拟器Genymotion的安装及使用教程。附注释图详解
- .NET CORE 1.1 迁移到.NET 2.0正式版
- mysql5.7主从复制配置——读写分离实现
- SharePoint 2013 启用 以其他用户身份登陆(Sign in as different user)
热门文章
- C#中读取二维数组每位的长度
- 在eclipse里的 flex 没有可视化的编辑
- C#常用简单线程实例
- PHP之mysql_real_escape_string()函数讲解
- tomcat 解析(四)-处理http请求过程
- sublime text3 配置插件包记录
- Unrecognized Windows Sockets error: 0: JVM_Bind异常
- 李洪强iOS开之【零基础学习iOS开发】【02-C语言】04-常量、变量
- spring中的aware接口
- win32 api ShouCursor 根据内部计数器 是否>;= 0 决定是否 显示光标,每true时计数器+1,每false-1