LightOJ - 1299 - Fantasy Cricket(DP, 数学)
链接:
https://vjudge.net/problem/LightOJ-1299
题意:
考虑成,U位置的点要往后放,D位置往前放
Dp[i][j]表示处于i位置,还有j个U没有放下。
s[i] == 'D' : Dp[i][j] = Dp[i-1][j]j+Dp[i-1][j+1](j+1)
把d放到前面空出来j的位置中的一个,或者是j+1中的一个同时j+1中的一个U再放下来。
s[i] == 'U' : Dp[i][j] = Dp[i-1][j-1]+Dp[i-1][j]*j
拿起当前U或者,拿起的同时放一个U
代码:
// #include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<vector>
#include<string.h>
#include<set>
#include<queue>
#include<algorithm>
#include<math.h>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const int MOD = 1e9+7;
const int MAXN = 1e6+10;
int n, m, k;
char s[1010];
LL Dp[1010][1010];
int main()
{
// freopen("test.in", "r", stdin);
int t, cas = 0;
scanf("%d", &t);
while(t--)
{
printf("Case %d:", ++cas);
scanf("%s", s);
int len = strlen(s);
Dp[0][0] = 1;
for (int i = 1;i <= len;i++)
{
if (s[i-1] == 'U')
{
for (int j = 0;j <= len;j++)
Dp[i][j] = (Dp[i-1][j-1]+Dp[i-1][j]*j%MOD)%MOD;
}
else if (s[i-1] == 'D')
{
for (int j = 0;j < len;j++)
Dp[i][j] = (Dp[i-1][j]*j%MOD+Dp[i-1][j+1]*(j+1)%MOD*(j+1)%MOD)%MOD;
}
else
{
for (int j = 0;j <= len;j++)
Dp[i][j] = Dp[i-1][j];
}
}
Dp[len][0] = (Dp[len][0]%MOD+MOD)%MOD;
printf(" %lld\n", Dp[len][0]);
}
return 0;
}
LightOJ - 1299 - Fantasy Cricket(DP, 数学)的更多相关文章
- 好的计数思想-LightOj 1213 - Fantasy of a Summation
https://www.cnblogs.com/zhengguiping--9876/p/6015019.html LightOj 1213 - Fantasy of a Summation(推公式 ...
- # E. Mahmoud and Ehab and the xor-MST dp/数学+找规律+xor
E. Mahmoud and Ehab and the xor-MST dp/数学/找规律 题意 给出一个完全图的阶数n(1e18),点由0---n-1编号,边的权则为编号间的异或,问最小生成树是多少 ...
- LightOj 1030 - Discovering Gold(dp+数学期望)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1030 题意:在一个1*n 的格子里,每个格子都有相应的金币数,走到相应格子的话,就会得 ...
- Codeforces Beta Round #2B(dp+数学)
贡献了一列WA.. 数学很神奇啊 这个题的关键是怎么才能算尾0的个数 只能相乘 可以想一下所有一位数相乘 除0之外,只有2和5相乘才能得到0 当然那些本身带0的多位数 里面肯定含有多少尾0 就含有多少 ...
- lightoj 1032 二进制的dp
题目链接:http://lightoj.com/volume_showproblem.php?problem=1032 #include <cstdio> #include <cst ...
- zznu 1255 数字统计(数位DP, 数学方法)
最近在学数位DP, 感觉还是满有收获的! 做了几个题之后想起来自己OJ上曾经做的一道题,以前是用数学方法写的,现在改用数位DP来写了一遍. 题目: 1255: 数字统计 时间限制: 1 Sec 内存 ...
- lightOJ 1017 Brush (III) DP
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1017 搞了一个下午才弄出来,,,,, 还是线性DP做的不够啊 看过数据量就知道 ...
- LightOJ 1213 Fantasy of a Summation(规律 + 快数幂)
http://lightoj.com/volume_showproblem.php?problem=1213 Fantasy of a Summation Time Limit:2000MS ...
- lightoj 1381 - Scientific Experiment dp
1381 - Scientific Experiment Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lightoj.com/vo ...
随机推荐
- vue中指令绑定的v-if逻辑结构
<!-- if判断 --> <div id="app2"> <p v-if="seen"> <!-- 给p标签绑定指令 ...
- 【题解】Luogu P4838 P哥破解密码
原题传送门 考虑一个一个将字母加入字符串后面 设\(f[i][0/1/2]\)表示长度为\(i\)字符串末尾有\(0/1/2\)个A的种类数 易知: \(f[1][0]=1,f[1][1]=1,f[1 ...
- 树卷积神经网络Tree-CNN: A Deep Convolutional Neural Network for Lifelong Learning
树卷积神经网络Tree-CNN: A Deep Convolutional Neural Network for Lifelong Learning 2018-04-17 08:32:39 看_这是一 ...
- webapi初学项目(增删改查),webapi增删
wenapi做了一个从数据库增删改查的项目 webapi: 1.创建项目:visual C# —> ASP.NET MVC 4 web应用程序 模板—>web api; 2.注册路由: 路 ...
- 获取SpringMVC中所有RequestMapping映射URL信息
SpringMVC启动的时候,会把接口信息收集在RequestMappingHandlerMapping中,故可以通过这个类,拿到全部的映射信息,Sample代码段如下: @Autowired pri ...
- vue 项目中assets 和static的区别
一.Webpacked Assets 为了回答这个问题,我们首先需要了解Webpack如何处理静态资产.在 *.vue 组件中,所有模板和CSS都会被 vue-html-loader 及 css-lo ...
- oracle数据库 部分函数的用法
select * from tab; //获取当前用户的数据库的所有表名 select sys_guid(),UserName from TESTLIKUI; //获取guid select sys_ ...
- Mycat分布式数据库架构解决方案--Mycat的介绍
echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 如果我 ...
- border-radius圆角属性
border-radius圆角 当盒子的宽高一样时,设置盒子的border-radius为50%,得到一个圆形 border-radius: 20px 30px 200px 200px; 只写一个值: ...
- MySQL Backup--innobackupex操作日志
备份脚本: innobackupex \ --defaults-file="/export/servers/mysql/etc/my.cnf" \ --host="loc ...