UVA 11982 Fantasy Cricket
https://vjudge.net/problem/UVA-11982
题意:
给出一个包含’U’, ‘D’, ‘E’的字符串,
’U’ 表示需要把这个字符向后移动,
’D’表示需要把这个字符向前移动,
’E’表示这个字符不移动,
求移动方案
‘U’和‘D’都需要把这个字符拿起
dp[i][j] 表示前i个字符中,有j个‘U’还没放下的方案数
如果第i个是‘U’,那么这个‘U’必须拿走,
这个位置可以暂时空着,由dp[i-1][j-1]转移
这个位置可以从之前没有放下的'U'里选一个放下,由dp[i-1][j]*j 转移
如果第i个是‘D’,那么这个‘D’必须放到前面,
这个位置可以暂时空着,‘D’可以从前面的j个位置任选一个放下,由dp[i-1][j]*j 转移
这个位置可以从之前没有放下的j+1个‘U’里选一个放下,‘D’可以从前面的j+1个位置任选一个放下,由dp[i-1][j+1]*(j+1)*(j+1)转移
#include<cstdio>
#include<cstring>
#define mod 1000000007
using namespace std;
long long dp[][];
char s[];
int len;
int main()
{
int T;
scanf("%d",&T);
for(int t=;t<=T;t++)
{
scanf("%s",s+);
len=strlen(s+);
memset(dp,,sizeof(dp));
dp[][]=;
for(int i=;i<=len;i++)
if(s[i]=='U')
for(int j=;j<=i;j++) dp[i][j]=(dp[i][j]+dp[i-][j-]+dp[i-][j]*j%mod)%mod;
else if(s[i]=='D')
for(int j=;j<=i;j++) dp[i][j]=(dp[i][j]+dp[i-][j]*j%mod+dp[i-][j+]*(j+)%mod*(j+)%mod);
else
for(int j=;j<=i;j++) dp[i][j]=dp[i-][j];
printf("Case %d: %d\n",t,dp[len][]);
}
}
UVA 11982 Fantasy Cricket的更多相关文章
- LightOJ - 1299 - Fantasy Cricket(DP, 数学)
链接: https://vjudge.net/problem/LightOJ-1299 题意: 考虑成,U位置的点要往后放,D位置往前放 Dp[i][j]表示处于i位置,还有j个U没有放下. s[i] ...
- 【uva 1312】Cricket Field(算法效率--技巧枚举)
题意:一个 L*R 的网格里有 N 棵树,要求找一个最大空正方形并输出其左下角坐标和长.(1≤L,R≤10000, 0≤N≤100) 解法:枚举空正方形也就是枚举空矩阵,先要固定一个边,才好继续操作. ...
- UVa 1312 Cricket Field (枚举+离散化)
题意:在w*h的图上有n个点,要求找出一个正方形面积最大,且没有点落在该正方形内部. 析:枚举所有的y坐标,去查找最大矩形,不断更新. 代码如下: #include <cstdio> #i ...
- UVA 1312 Cricket Field
题意: 在w*h的坐标上给n个点, 然后求一个最大的矩形,使得这个矩形内(不包括边界)没有点,注意边界上是可以有点的. 分析: 把坐标离散化.通过两重循环求矩形的高,然后枚举,看是否能找到对应的矩形. ...
- uva 1354 Mobile Computing ——yhx
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5
- UVA 10564 Paths through the Hourglass[DP 打印]
UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...
- UVA 11404 Palindromic Subsequence[DP LCS 打印]
UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...
- UVA&&POJ离散概率与数学期望入门练习[4]
POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...
- UVA计数方法练习[3]
UVA - 11538 Chess Queen 题意:n*m放置两个互相攻击的后的方案数 分开讨论行 列 两条对角线 一个求和式 可以化简后计算 // // main.cpp // uva11538 ...
随机推荐
- “Hello World!”团队第七周召开的第一次会议
今天是我们团队“Hello World!”团队第七周召开的第一次会议.博客内容: 一.会议时间 二.会议地点 三.会议成员 四.会议内容 五.Todo List 六.会议照片 七.燃尽图 一.会议时间 ...
- Beta冲刺贡献分数分配结果
小组名称:Hello World! 项目名称:空天猎 组长:陈建宇 成员:刘成志.刘耀泽.刘淑霞.黄泽宇.方铭.贾男男 第三周贡献分分配结果 基础分 会议分 个人贡献分 最终分数 黄泽宇 9 0.5 ...
- debian 安装kde
今天用最小安装安装了一台debian虚拟机,想要安装kde桌面,总是安装不上,使用语句 apt-get install kde apt-get install kde4 都试了,不行.最终查看debi ...
- mvc4 找到多个与名为“xx”的控制器匹配的类型
asp.net mvc4 添加分区出现错误 找到多个与名为“home”的控制器匹配的类型 会出现如下错误”找到多个与名为“home”的控制器匹配的类型“ 在RouteConfig文件中添加命名空间可解 ...
- Solr初步研究
Solr是一个高性能,采用Java5开发,Solr基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展并对查询性能进行了优化,并且提供 ...
- 第163天:js面向对象-对象创建方式总结
面向对象-对象创建方式总结 1. 创建对象的方式,json方式 推荐使用的场合: 作为函数的参数,临时只用一次的场景.比如设置函数原型对象. var obj = {}; //对象有自己的 属性 和 行 ...
- SpingCloud之feign框架调用
1.生产者(没有什么特殊性) pom.xml <?xml version="1.0" encoding="UTF-8"?> <project ...
- HDU4790_Just Random
这个题目我只能说我一看就知道是这么做的,但是由于实现能力略水,Wa了3发. 题意为给你两个区间[a,b]和[c,d],两个区间分别任取一个数,现在要你求出这个数模p的值为m的概率有多大. 其实是这么做 ...
- APIO/CTSC2017游记
5.10开坑,别问我为啥今天才开始写,前几天玩得太开心了233 5.7 坐火车坐火车,坐地铁坐地铁.其实是第一次坐地铁233.解锁了在地铁上双手玩手机不扶东西站立的姿势? 全程烧流量上QQ,拜大佬约面 ...
- 使用Xpath定位元素
1.xpath较复杂的定位方法: 现在要引用id为“J_password”的input元素,可以像下面这样写: WebElement password = driver.findElement(By. ...