2017.10.28 管道取珠 失败总结
这个题有一个新套路: ∑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 管道取珠 失败总结相关推荐
- 【BZOJ 1566】 1566: [NOI2009]管道取珠 (DP)
1566: [NOI2009]管道取珠 Time Limit: 20 Sec Memory Limit: 650 MB Submit: 1659 Solved: 971 Description I ...
- [NOI2009]管道取珠
题目描述 管道取珠是小X很喜欢的一款游戏.在本题中,我们将考虑该游戏的一个简单改版.游戏画面如图1所示: (图1) 游戏初始时,左侧上下两个管道分别有一定数量的小球(有深色球和浅色球两种类型),而右侧 ...
- 牛客网 【每日一题】5月29日 管道取珠
链接: 文章目录 题目描述 题意: 题解: 代码: 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld ...
- BZOJ1566 [NOI2009]管道取珠
这是一道思维复杂度很高的DP题 看题目,为什么是取两次序列一样呢?YY一下,其实等价于两个人一起取,最后序列一样. 然后就水了: 令f[i, j, k]表示取到第i个珠子,第一个人在1号管道取了j个珠 ...
- 洛谷 - P1758 [NOI2009]管道取珠(计数dp)
题目链接:点击查看 题目大意:给出两个长度分别为 n 和 m 的管道,每个管道中都只有两种颜色的珠子,现在可以按照规则组成序列,共可以组成 C( n+m , n ) 个序列,假设共组成了 K 种不同的 ...
- 洛谷P1758 [NOI2009]管道取珠(dp 贡献转化)
题目 bzoj1566 两个管道的小球序列, 分别用长为n(n<=500)和长为m(m<=500)的仅由A和B构成的字符串表示 两个管道归并的时候,每次可以从上管道取一个球,也可以从下管道 ...
- Bzoj 1566: [NOI2009]管道取珠(动态规划-神题)
以下内容来自ShallWe's Blog 题目 题目链接 Description Input 第一行包含两个整数n, m,分别表示上下两个管道中球的数目. 第二行为一个AB字符串,长度为n,表示上管道 ...
- 【长沙集训】2017.10.28
1 抄代码 1.1 问题描述 J 君是机房的红太阳,每次模拟她总是 AK 虐场.然而在 NOIP2117 中,居然出现了另一位 AK 的选手 C 君! 这引起了组委会的怀疑,组委会认为 C 君有抄袭 ...
- 2017.10.28闵神讲课DAY1
OMG 我辛辛苦苦打的笔记被吃掉了 只能转载我们涵神的了 反正我们写的差不多 附上涵神原文:传送门 背景 搜索到DP的过渡 搜索的艰辛 记忆化出现了 DP的基础 DP的实现方法 例题 题面 分析 再谈 ...
最新文章
- 【Sql Server】DateBase-SQL调整
- MFC中的几个常用类——CWnd
- nagios 3.2安装详解(一)
- 修改web.config
- C++--浅谈开发系统的经验
- 大工奥鹏计算机在线作业,大工20春《计算机网络技术》在线作业1题目【标准答案】...
- 配置 MySQL 服务器容器
- 计算机除数的时候怎么会有分数,在做除法运算时,为什么0不能做除数?
- pandas学习手记-柱状图
- 修改密码PHP博客,phpwind任意修改管理员密码漏洞
- Primo Ramdisk配置教程
- otg usb 定位_USB OTG插入检测识别
- CSDN新版个人空间介绍之三——代码与收藏
- 线性相关与线性无关的定义与性质
- 2022年湖南省高职单招(职业倾向性)(言语理解与表达)考试冲刺试题及答案
- Praat脚本-003 | 一种高效的将连续录制的音频切分的方案
- MySQL同步机制、主从复制半同步和双主配置
- win7设置密码次数超限技巧
- zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso镜像下载
- 近几年好的需求管理工具有哪些?不错的需求管理工具推荐!
热门文章
- Flume案例Ganglia监控
- MacOS录屏OBS+Loopback配置方法
- C++ STL容器vector篇(三) vector容器大小和数组大小, 插入和删除元素, 存储和读取元素
- Python绘制sigmoid函数及其导数图像
- 【mysql基础知识】通过Navicat控制小数点位数,以及填充0后不显示的问题
- display none 隐藏后怎么显示_display:none与visibility:hidden的区别?
- servlet-cookie实现向客户端写cookie信息
- python中组合框_如何从SQL填充组合框数据?使用Python
- python调用cplex求解装箱问题_使用cplex(python)解决限制背包(01背包)问题
- 如何判断map为空_Java到底如何更优雅地判空