ZOJ 3791 An Easy Game(DP)
题意 : 给你两个长度为N的字符串,将第一个字符串每次只能变化M个,问变换K次之后变成第二个字符串一共有几种方法。
思路 : DP。dp[i][j]表示变了 i 次之后有j个不一样的字母的方法数。
状态转移方程:dp[i+1][j+M-2*k] += (dp[i][j]*(c[j][k]*c[N-j][M-k]) ;
c[j][k]表示的是从j个不匹配的字符中找出k个不匹配,所以c[N-j][M-k]表示的剩下的N-j个中挑出M-k个匹配的进行变换。两者相乘就是组合数,表明这次变换的方法数。
#include <stdio.h>
#include <string.h>
#include <iostream> using namespace std ; long long c[][],dp[][] ;
char sh[],ch[] ; void cmn()
{
for(int i = ; i < ; i++)
c[i][] = ;
for(int i = ; i < ; i++)
{
for(int j = ; j <= i ; j++)
c[i][j] = (c[i-][j-]+c[i-][j])% ;
}
}
int main()
{
int N,K,M ;
cmn() ;
while(~scanf("%d %d %d",&N,&K,&M))
{
scanf("%s %s",ch,sh) ;
int cnt = ;
memset(dp,,sizeof(dp)) ;
for(int i = ; i < N ; i++)
if(sh[i] != ch[i])
cnt++ ;
dp[][cnt] = ;
for(int i = ; i < K ; i++)
{
for(int j = ; j <= N ; j++)
{
for(int k = ; k <= M ; k++)
{
if(j+M-*k < ) break ;
if(j+M-*k > N) continue ;
dp[i+][j+M-*k] += ((dp[i][j]%)*(c[j][k]*c[N-j][M-k]%))% ;
}
}
}
printf("%lld\n",dp[K][]) ;
}
return ;
}
ZOJ 3791 An Easy Game(DP)的更多相关文章
- zoj 3706 Break Standard Weight(dp)
Break Standard Weight Time Limit: 2 Seconds Memory Limit: 65536 ...
- ZOJ - 3450 Doraemon's Railgun (dp)
https://vjudge.net/problem/ZOJ-3450 题意 一座位落(X0,Y0)的城市将遭受n个敌人的摧残.现在我们手上有某科学的超电磁炮,每次攻击都是一条射线,对于共线的敌人,必 ...
- CF1096D Easy Problem(DP)
貌似最近刷了好多的CF题…… 题目链接:CF原网 洛谷 题目大意:有一个长度为 $n$ 的字符串 $s$,删除第 $i$ 个字符需要代价 $a_i$.问使得 $s$ 不含有子序列(不是子串)" ...
- Codeforces 1077F1 Pictures with Kittens (easy version)(DP)
题目链接:Pictures with Kittens (easy version) 题意:给定n长度的数字序列ai,求从中选出x个满足任意k长度区间都至少有一个被选到的最大和. 题解:$dp[i][j ...
- ZOJ3791 An Easy Game(DP)
给两个长n的01串s1和s2,要对s1进行k次修改,每次修改m个不同位置,问有几种方式修改成s2. 想偏了,只想到原始的01数值是不重要的,因为每个位置修改次数的奇偶性是确定的这一层.. 其实,这题只 ...
- ZOJ 1642 Match for Bonus (DP)
题目链接 题意 : 给你两个字符串,两个字符串都有共同的字母,给你每个字母的值,规则是,找出两个字符串中的共同的一个字母,然后这个字母的值就可以加到自己的分数上,但是这步操作之后,这两个字母及其之前的 ...
- ZOJ 3605 Find the Marble(dp)
Find the Marble Time Limit: 2 Seconds Memory Limit: 65536 KB Alice and Bob are playing a game. ...
- LightOJ 1033 Generating Palindromes(dp)
LightOJ 1033 Generating Palindromes(dp) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...
- ZOJ 1093 Monkey and Banana (LIS)解题报告
ZOJ 1093 Monkey and Banana (LIS)解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...
随机推荐
- mac实现jni的demo
今天在看ArrayList 源码时看到了System.arraycopy 这个方法,但是这个方法没有java实现. 后面一通查询查找,才知道 如下图 native是一个java调用c语言来实现的操作的 ...
- 【风马一族_Python】 决策树
<机器学习实战>第三章 决策树 ------------------------------------- #1 trees.py 计算给定数据集的香农熵 ---------------- ...
- html5圆角
以下是代码片段:#roundCornerI{ font-family: Arial; border: 5px solid #dedede; -moz-border-radius-tople ...
- 《postfix邮件服务下mailq、postmap、postqueue 、 postsuper等用法》
1.Mailq 功能说明:显示待寄邮件的清单. 语 法:mailq [-q] 补充说明:mailq可列出待寄邮件的清单,包括邮件ID,邮件大小,邮件保存时间,寄信人,收信人,以及邮件无法寄出的原因,提 ...
- 用户不在sudoers文件中的解决方法
1.更改/etc/sudoers权限为777 2.修改文件中 root ALL=(ALL) ALL 下方增加 user ALL=(ALL) ALL 3.回复文件/e ...
- iTerm2 颜色配置
1. 首先找到配色文件: iterm2官网配色方案iTerm2-Color-Schemes altercation的 solarized配色方案solarized 2. 配置步骤: clone上面的 ...
- [大牛翻译系列]Hadoop(14)MapReduce 性能调优:减小数据倾斜的性能损失
6.4.4 减小数据倾斜的性能损失 数据倾斜是数据中的常见情况.数据中不可避免地会出现离群值(outlier),并导致数据倾斜.这些离群值会显著地拖慢MapReduce的执行.常见的数据倾斜有以下几类 ...
- boost-内存管理(scoped_array)
# include <algorithm> string *p=new string[20]; scoped_array<string> sp(p); fill_ ...
- Lightmapping
当游戏场景包含了大量的多边形时,实时光源和阴影对游戏性能的影响会很大.这时更适合使用Lightmapping技术,将光线效果预渲染成贴图使用到多边形上模拟光影效果.这种方式不用担心光源数量和阴影对性能 ...
- Surrounded Regions
Surrounded Regions Given a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'. A ...