链接:

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

代码:

  1. // #include<bits/stdc++.h>
  2. #include<iostream>
  3. #include<cstdio>
  4. #include<vector>
  5. #include<string.h>
  6. #include<set>
  7. #include<queue>
  8. #include<algorithm>
  9. #include<math.h>
  10. using namespace std;
  11. typedef long long LL;
  12. typedef unsigned long long ULL;
  13. const int MOD = 1e9+7;
  14. const int MAXN = 1e6+10;
  15. int n, m, k;
  16. char s[1010];
  17. LL Dp[1010][1010];
  18. int main()
  19. {
  20. // freopen("test.in", "r", stdin);
  21. int t, cas = 0;
  22. scanf("%d", &t);
  23. while(t--)
  24. {
  25. printf("Case %d:", ++cas);
  26. scanf("%s", s);
  27. int len = strlen(s);
  28. Dp[0][0] = 1;
  29. for (int i = 1;i <= len;i++)
  30. {
  31. if (s[i-1] == 'U')
  32. {
  33. for (int j = 0;j <= len;j++)
  34. Dp[i][j] = (Dp[i-1][j-1]+Dp[i-1][j]*j%MOD)%MOD;
  35. }
  36. else if (s[i-1] == 'D')
  37. {
  38. for (int j = 0;j < len;j++)
  39. Dp[i][j] = (Dp[i-1][j]*j%MOD+Dp[i-1][j+1]*(j+1)%MOD*(j+1)%MOD)%MOD;
  40. }
  41. else
  42. {
  43. for (int j = 0;j <= len;j++)
  44. Dp[i][j] = Dp[i-1][j];
  45. }
  46. }
  47. Dp[len][0] = (Dp[len][0]%MOD+MOD)%MOD;
  48. printf(" %lld\n", Dp[len][0]);
  49. }
  50. return 0;
  51. }

LightOJ - 1299 - Fantasy Cricket(DP, 数学)的更多相关文章

  1. 好的计数思想-LightOj 1213 - Fantasy of a Summation

    https://www.cnblogs.com/zhengguiping--9876/p/6015019.html LightOj 1213 - Fantasy of a Summation(推公式 ...

  2. # E. Mahmoud and Ehab and the xor-MST dp/数学+找规律+xor

    E. Mahmoud and Ehab and the xor-MST dp/数学/找规律 题意 给出一个完全图的阶数n(1e18),点由0---n-1编号,边的权则为编号间的异或,问最小生成树是多少 ...

  3. LightOj 1030 - Discovering Gold(dp+数学期望)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1030 题意:在一个1*n 的格子里,每个格子都有相应的金币数,走到相应格子的话,就会得 ...

  4. Codeforces Beta Round #2B(dp+数学)

    贡献了一列WA.. 数学很神奇啊 这个题的关键是怎么才能算尾0的个数 只能相乘 可以想一下所有一位数相乘 除0之外,只有2和5相乘才能得到0 当然那些本身带0的多位数 里面肯定含有多少尾0 就含有多少 ...

  5. lightoj 1032 二进制的dp

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1032 #include <cstdio> #include <cst ...

  6. zznu 1255 数字统计(数位DP, 数学方法)

    最近在学数位DP, 感觉还是满有收获的! 做了几个题之后想起来自己OJ上曾经做的一道题,以前是用数学方法写的,现在改用数位DP来写了一遍. 题目: 1255: 数字统计 时间限制: 1 Sec  内存 ...

  7. lightOJ 1017 Brush (III) DP

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1017 搞了一个下午才弄出来,,,,, 还是线性DP做的不够啊 看过数据量就知道 ...

  8. LightOJ 1213 Fantasy of a Summation(规律 + 快数幂)

    http://lightoj.com/volume_showproblem.php?problem=1213  Fantasy of a Summation Time Limit:2000MS     ...

  9. lightoj 1381 - Scientific Experiment dp

    1381 - Scientific Experiment Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://www.lightoj.com/vo ...

随机推荐

  1. 常见的几种异常类型 Exception

    常见异常类型:Java中的异常分为两大类: 1.Checked Exception(非Runtime Exception) 2.Unchecked Exception(Runtime Exceptio ...

  2. [转帖]JAVA BIO与NIO、AIO的区别(这个容易理解)

    JAVA BIO与NIO.AIO的区别(这个容易理解) https://blog.csdn.net/ty497122758/article/details/78979302 2018-01-05 11 ...

  3. AES不同语言加密解密

    AES加密模式和填充方式:还有其他 算法/模式/填充 16字节加密后数据长度 不满16字节加密后长度 AES/CBC/NoPadding 16 不支持 AES/CBC/PKCS5Padding 32 ...

  4. extend Thread 和 implements Runnable

    原文地址:extend Thread 和 implements Runnable 一个Thread的实例只能产生一个线程 or: 同一实例(Runnable实例)的多个线程 look: public ...

  5. VBA 字符串-相关函数(1-5)

    Instr()函数 InStr()函数返回一个字符串第一次出现在一个字符串,从左到右搜索.返回搜索到的字符索引位置. 语法 InStr([start,]string1,string2[,compare ...

  6. WinServer-开关机日志

    开关机日志正常1074, 6006, 13, 12, 6005,41,60081074 记录某用户在某计划下重启6006 日志服务关闭13 OS关闭时间按12 OS启动时间6005 日志服务开启 异常 ...

  7. Java8新特性Function、BiFunction使用

    闲话不多说,直接看代码,注释都写的很清楚了. package com; import java.util.function.BiFunction; import java.util.function. ...

  8. WEB安全工程师整理资料

    安全产品  NESS   Nmap   AWVS Burp APPScan   chopper  sqlmap   kali linux    具体的教程可以在SEcWiki 上搜索  使用公开的漏洞 ...

  9. gitlab(7.9)升级到8.0.1

    1.gitlab8.0更新说明 GitLab 8.0 现在完全集成了持续集成工具 (GitLab CI) ,此外还完全重写了 UI,节省了至少 50% 的磁盘空间.更快的合并,内置持续集成(CI)到 ...

  10. 17.centos7基础学习与积累-003-命令练习01

    1.从头开始积累centos7系统运用 大牛博客:https://blog.51cto.com/yangrong/p5 linux命令的学习: 创建目录:mkdir mkdir /data mkdir ...