这个题有一个新套路:  ∑ai^2

要知道一般的计数题是∑ai,,所以这多乘了一个自己有什么意义呢?

于是想到,两两枚举,加起来正好是ai^2;;

所以就有一个想法,枚举两种取法,

然后就是插数dp,,枚举上一个状态到这一个状态的所有可能转移,

由于两次枚举范围一致,所以一定是两两比较,算出来一定是ai^2

插数的正确性也比较显然,以前 到转移状态的所有相同的串   后面再添一个相同的字符,这些串也一定是相同的

码:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,i,j,l,f[2][505][505],o;
#define P 1024523
char a[505],b[505];
int main()
{scanf("%d%d%s%s",&n,&m,a+1,b+1);f[1][0][0]=1;for(l=1;l<=n+m;l++,o^=1){memset(f[o],0,sizeof(f[o]));for(i=max(0,l-m);i<=min(n,l);i++)for(j=max(0,l-m);j<=min(n,l);j++){if(i&&j&&a[i]==a[j])        f[o][i][j]+=f[o^1][i-1][j-1];if(l-i&&l-j&&b[l-i]==b[l-j])f[o][i][j]+=f[o^1][i][j];if(i&&l-j&&a[i]==b[l-j])    f[o][i][j]+=f[o^1][i-1][j]; if(l-i&&j&&b[l-i]==a[j])    f[o][i][j]+=f[o^1][i][j-1]; f[o][i][j]%=P;}}printf("%d",f[o^1][n][n]);
}

2017.10.28 管道取珠 失败总结相关推荐

  1. 【BZOJ 1566】 1566: [NOI2009]管道取珠 (DP)

    1566: [NOI2009]管道取珠 Time Limit: 20 Sec  Memory Limit: 650 MB Submit: 1659  Solved: 971 Description I ...

  2. [NOI2009]管道取珠

    题目描述 管道取珠是小X很喜欢的一款游戏.在本题中,我们将考虑该游戏的一个简单改版.游戏画面如图1所示: (图1) 游戏初始时,左侧上下两个管道分别有一定数量的小球(有深色球和浅色球两种类型),而右侧 ...

  3. 牛客网 【每日一题】5月29日 管道取珠

    链接: 文章目录 题目描述 题意: 题解: 代码: 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld ...

  4. BZOJ1566 [NOI2009]管道取珠

    这是一道思维复杂度很高的DP题 看题目,为什么是取两次序列一样呢?YY一下,其实等价于两个人一起取,最后序列一样. 然后就水了: 令f[i, j, k]表示取到第i个珠子,第一个人在1号管道取了j个珠 ...

  5. 洛谷 - P1758 [NOI2009]管道取珠(计数dp)

    题目链接:点击查看 题目大意:给出两个长度分别为 n 和 m 的管道,每个管道中都只有两种颜色的珠子,现在可以按照规则组成序列,共可以组成 C( n+m , n ) 个序列,假设共组成了 K 种不同的 ...

  6. 洛谷P1758 [NOI2009]管道取珠(dp 贡献转化)

    题目 bzoj1566 两个管道的小球序列, 分别用长为n(n<=500)和长为m(m<=500)的仅由A和B构成的字符串表示 两个管道归并的时候,每次可以从上管道取一个球,也可以从下管道 ...

  7. Bzoj 1566: [NOI2009]管道取珠(动态规划-神题)

    以下内容来自ShallWe's Blog 题目 题目链接 Description Input 第一行包含两个整数n, m,分别表示上下两个管道中球的数目. 第二行为一个AB字符串,长度为n,表示上管道 ...

  8. 【长沙集训】2017.10.28

    1 抄代码 1.1 问题描述 J 君是机房的红太阳,每次模拟她总是 AK 虐场.然而在 NOIP2117 中,居然出现了另一位 AK 的选手 C 君! 这引起了组委会的怀疑,组委会认为 C 君有抄袭 ...

  9. 2017.10.28闵神讲课DAY1

    OMG 我辛辛苦苦打的笔记被吃掉了 只能转载我们涵神的了 反正我们写的差不多 附上涵神原文:传送门 背景 搜索到DP的过渡 搜索的艰辛 记忆化出现了 DP的基础 DP的实现方法 例题 题面 分析 再谈 ...

最新文章

  1. 【Sql Server】DateBase-SQL调整
  2. MFC中的几个常用类——CWnd
  3. nagios 3.2安装详解(一)
  4. 修改web.config
  5. C++--浅谈开发系统的经验
  6. 大工奥鹏计算机在线作业,大工20春《计算机网络技术》在线作业1题目【标准答案】...
  7. 配置 MySQL 服务器容器
  8. 计算机除数的时候怎么会有分数,在做除法运算时,为什么0不能做除数?
  9. pandas学习手记-柱状图
  10. 修改密码PHP博客,phpwind任意修改管理员密码漏洞
  11. Primo Ramdisk配置教程
  12. otg usb 定位_USB OTG插入检测识别
  13. CSDN新版个人空间介绍之三——代码与收藏
  14. 线性相关与线性无关的定义与性质
  15. 2022年湖南省高职单招(职业倾向性)(言语理解与表达)考试冲刺试题及答案
  16. Praat脚本-003 | 一种高效的将连续录制的音频切分的方案
  17. MySQL同步机制、主从复制半同步和双主配置
  18. win7设置密码次数超限技巧
  19. zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso镜像下载
  20. 近几年好的需求管理工具有哪些?不错的需求管理工具推荐!

热门文章

  1. Flume案例Ganglia监控
  2. MacOS录屏OBS+Loopback配置方法
  3. C++ STL容器vector篇(三) vector容器大小和数组大小, 插入和删除元素, 存储和读取元素
  4. Python绘制sigmoid函数及其导数图像
  5. 【mysql基础知识】通过Navicat控制小数点位数,以及填充0后不显示的问题
  6. display none 隐藏后怎么显示_display:none与visibility:hidden的区别?
  7. servlet-cookie实现向客户端写cookie信息
  8. python中组合框_如何从SQL填充组合框数据?使用Python
  9. python调用cplex求解装箱问题_使用cplex(python)解决限制背包(01背包)问题
  10. 如何判断map为空_Java到底如何更优雅地判空