ZOJ3791_An Easy Game
给出两个等长的字符串,每次需要改变m个数字,每次必须改变k个数字,求从第一个串变化到第二个串的方案数。
DP。f[i][j]改变i步后,有j个位置被改变的方案数。然后直接枚举当前改变的几个位置是前面重合的。
然后统计答案输出即可。
#include <iostream>
#include <cstring>
#include <cstdio>
#define M 1000000009
#define maxn 105
typedef long long ll;
using namespace std; ll C[maxn][maxn];
ll f[maxn][maxn];
int n,k,m,change;
ll ans; ll power(ll A,ll B)
{
ll tot=;
while (B){
if (B&) tot=tot*A%M;
A=A*A%M,B>>=;
}
return tot;
} void _init()
{
memset(C,,sizeof C);
C[][]=;
for (int i=; i<maxn; i++){
C[i][]=;
for (int j=; j<=i; j++) C[i][j]=(C[i-][j]+C[i-][j-])%M;
}
} int main()
{
_init();
char s1[maxn],s2[maxn];
while (scanf("%d%d%d",&n,&k,&m)!=EOF){
change=;
scanf("%s%s",s1,s2);
for (int i=; i<n; i++)
if (s1[i]!=s2[i]) change++;
memset(f,,sizeof f);
f[][]=;
for (int i=; i<k; i++)//after the ith time of changes
for (int j=; j<=n; j++){//the number of 1 is j
if (f[i][j]==) continue;
for (int x=max(,j+m-n); x<=min(j,m); x++){
f[i+][j-x+m-x]+=f[i][j]*(C[j][x]*C[n-j][m-x]%M)%M;
f[i+][j-x+m-x]%=M;
}
}
ans=f[k][change]*power(C[n][change],M-)%M;
printf("%d\n",(int)ans);
}
return ;
}
ZOJ3791_An Easy Game的更多相关文章
- 【转】Windows下使用libsvm中的grid.py和easy.py进行参数调优
libsvm中有进行参数调优的工具grid.py和easy.py可以使用,这些工具可以帮助我们选择更好的参数,减少自己参数选优带来的烦扰. 所需工具:libsvm.gnuplot 本机环境:Windo ...
- Struts2 easy UI插件
一.easy UI是类似于jQuery UI的插件库,它提供了丰富的各种常用插件:tree.datagrid... tree插件: 语法:$(selector).tree([settings]); 常 ...
- Easy UI常用插件使用
一.easy UI是类似于jQuery UI的插件库,它提供了丰富的各种常用插件:tree.datagrid... tree插件: 语法:$(selector).tree([settings]); 常 ...
- UVA-11991 Easy Problem from Rujia Liu?
Problem E Easy Problem from Rujia Liu? Though Rujia Liu usually sets hard problems for contests (for ...
- CodeForces462 A. Appleman and Easy Task
A. Appleman and Easy Task time limit per test 1 second memory limit per test 256 megabytes input sta ...
- easy ui插件
简介: easy UI是类似于jQuery UI的插件库 注意:多脚本同时使用时,注意脚本冲突问题. 常用插件: 1.tree插件(tree插件实现动态树形菜单) 2.datagrid插件(datag ...
- 用TPP开启TDD的easy模式
Test-Drived Development 测试驱动开发三步曲:写一个失败的测试用例->编写生产代码通过这个测试用例(transformation)->重构(refactor).重构是 ...
- Easy Sysprep更新日志-skyfree大神
Easy Sysprep更新日志: Skyfree 发表于 2016-1-22 13:55:55 https://www.itsk.com/forum.php?mod=viewthread&t ...
- [官方软件] Easy Sysprep v4.3.29.602 【系统封装部署利器】(2016.01.22)--skyfree大神
[官方软件] Easy Sysprep v4.3.29.602 [系统封装部署利器](2016.01.22) Skyfree 发表于 2016-1-22 13:55:55 https://www.it ...
随机推荐
- 使用TCPDF插件生成pdf以及pdf的中文处理
目录(?)[+] 多种多样的pdf开发库 WKHTMLTOPDF 2FPDF 3TCPDF 中文问题 做了这么多年项目,以前只是在别人的项目中了解过PHP生成pdf文件,知道并不难,但是涉及到了p ...
- 基于angular写的一个todolist
对于新手来说,使用angularjs写一个todolist可以快速入门
- Java Daemon 守护线程
Java中可以通过Thread或ThreadGroup的setDaemon方法将线程设置为守护线程 当所有非守护线程退出后 守护线程将被杀死不在运行 .Net中可以通过设置IsBackground属性 ...
- php面向对象之final的应用
final从英文字面上很容易理解,翻译成中文就是“最终的”之意.在php面向对象编程中,final的应用主要有两个作用: 1.使用final修饰的类,该不能被继承 01 <?php 02 ...
- 搭建DAO层和Service层代码
第一部分建立实体和映射文件 1 通过数据库生成的实体,此步骤跳过,关于如何查看生成反向工程实体类查看SSH框架搭建教程-反向工程章节 Tmenu和AbstractorTmenu是按照数据库表反向工程形 ...
- Ternary Search Trees 三分搜索树
经常碰到要存一堆的string, 这个时候可以用hash tables, 虽然hash tables 查找很快,但是hash tables不能表现出字符串之间的联系.可以用binary search ...
- 表有主外键约束时的delete 方法 2008
--1.禁用约束 ALTER TABLE abppmgr.MST_ITEMMASTER disable CONSTRAINT C0248833319_7676; --2.删除数据 truncate t ...
- 文本提交带单引号引起mysql报错
mysql插入数据时报错:MySQL server version for the right syntax to use near 'Microsoft YaHei', 经过反复测试,原因是提交的编 ...
- Masonry控制台打印约束冲突问题解决
不知道你是不是视图的布局也是用的第三方Masonry,在使用中是不是也遇到了控制台约束冲突的警告打印,看下图: 从输出的信息可以知道,有的控件的约束明显重复了设置,所以指出了是哪个控件,重复设置了哪些 ...
- oracle去掉重复记录语句
oracle去掉重复记录语句 比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 select p1.* from persons p1 ...