原题: FZU 2170 http://acm.fzu.edu.cn/problem.php?pid=2170

这题确实是当时没读懂题目,连样例都没想通,所以没做了,所以还是感觉这样散漫的做不好,有些题目明明很简单,却因为没看懂而放弃了,甚至去玩了,这样达不到太大的效果。

解法:

定义: dp[i][j]:前i个字母中有j个是属于第一个序列的标号方案种数。

则当遇到'B'时,因为要满足WB依次间歇出现,所以前面属于第一个序列的个数应该为奇数,即j&1时转移。当属于第二个序列的个数为奇数时((i-j)&1)也要转移,因为这个B有可能属于第二个序列。当遇到'W'时反之。

用滚动数组节省空间。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#define Mod 1000000007
using namespace std;
#define N 6007int dp[2][N];
char ss[N];int main()
{int n,i,j;int now;int t;scanf("%d",&t);while(t--){scanf("%d",&n);scanf("%s",ss);memset(dp,0,sizeof(dp));dp[0][0] = 1;for(i=0,now=1;i<2*n;i++,now=1-now){memset(dp[now],0,sizeof(dp[now]));if(ss[i] == 'B'){for(j=0;j<=n;j++){if(j&1)dp[now][j+1] = (dp[now][j+1]+dp[i&1][j])%Mod;if((i-j)&1)dp[now][j] = (dp[now][j]+dp[i&1][j])%Mod;}}else{for(j=0;j<=n;j++){if((j&1) == 0)dp[now][j+1] = (dp[now][j+1]+dp[i&1][j])%Mod;if(((i-j)&1) == 0)dp[now][j] = (dp[now][j]+dp[i&1][j])%Mod;}}}printf("%d\n",dp[0][n]);}return 0;
}

View Code

转载于:https://www.cnblogs.com/whatbeg/p/3832266.html

2014 Super Training #10 D 花生的序列 --DP相关推荐

  1. 2014 Super Training #8 C An Easy Game --DP

    原题:ZOJ 3791 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3791 题意:给定两个0-1序列s1, s2,操作t ...

  2. 2014 Super Training #7 F Power of Fibonacci --数学+逆元+快速幂

    原题:ZOJ 3774  http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3774 --------------------- ...

  3. 2015 UESTC Winter Training #10【Northeastern Europe 2009】

    2015 UESTC Winter Training #10 Northeastern Europe 2009 最近集训都不在状态啊,嘛,上午一直在练车,比赛时也是刚吃过午饭,状态不好也难免,下次比赛 ...

  4. 信息学奥赛一本通 1177:奇数单增序列 | OpenJudge NOI 1.10 02:奇数单增序列

    [题目链接] ybt 1177:奇数单增序列 OpenJudge NOI 1.10 02:奇数单增序列 [题目考点] 1. 排序 [君义精讲]排序算法 [解题思路] 题目中说的是要先取出奇数,再对奇数 ...

  5. 2014 UESTC Training for Data Structures D - 长使英雄泪满襟

    以下内容来自ShallWe's blog 题目 2014 UESTC Training for Data Structures D - 长使英雄泪满襟 看出司马懿在等蜀军粮草不济,孔明于是下令分兵屯田 ...

  6. 【codevs1048】【codevs115406TG】石子归并、能量项链,序列dp的典型题目

    1048 石子归并 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并 ...

  7. 【NOIP训练】塔防游戏 序列DP / 数据结构

    题 有 n n n 座塔标号为 1−n" role="presentation" style="position: relative;">1−n ...

  8. [2020.10.25NOIP模拟赛]序列【Splay】

    正题 题目链接:https://www.luogu.com.cn/problem/U136336?contestId=36038 题目大意 第iii次找到第iii大的数字位置xix_ixi​并且翻转[ ...

  9. 《Python Cookbook 3rd》笔记(1.10):删除序列相同元素并保持顺序

    删除序列相同元素并保持顺序 问题 怎样在一个序列上面保持元素顺序的同时消除重复的值? 解法 如果序列上的值都是 hashable 类型,那么可以很简单的利用集合或者生成器来解决这个问题.比如: def ...

最新文章

  1. element ui 组件踩坑记录--后台管理系统-最全
  2. akshare 布林通道策略
  3. VMVare 虚拟机使用桥接模式
  4. 安卓模拟器安装过程记录 20200926
  5. keygenerator php,学习PHP生成器的使用
  6. POJ3264Balanced Lineup(线段树)
  7. 用jquery给Struts2的s:radio /标签添加change事件
  8. “谷歌金山词霸”换汤不换药 实验结果令人失望
  9. 【模型加速】PointPillars模型TensorRT加速实验(4)
  10. win7开机突然变得很慢_Win7电脑反应变慢怎么办?
  11. Realtek 1296 (RTD1296) OpenWRT Android 双系统全功能开发板
  12. (ACWing yxc基础算法课笔记) 前缀和
  13. 计算机组成原理基础知识试题及答案,[电脑基础知识]计算机组成原理试题库.doc...
  14. Flash(AS2.0)与php通讯 分享
  15. 神经网络 注意力机制 Q K V 理解
  16. javascript_实现
  17. 【模型剪枝】|Learning Efficient Convolutional Networks through Network Slimming
  18. win10安装软件时显示:“现在更新设备, 若要继续接收应用建议,请立即更新”
  19. SVN客户端无法连接服务器的问题
  20. Linux上的程序是通用的吗,运行兼容 Linux Standard Base (LSB)程序的通用解决办法

热门文章

  1. Python爬虫基础:简单的爬虫入门示例(urllib库)
  2. JVM 调优实战--常见的垃圾回收算法及垃圾收集器组合
  3. Java工具类--Map集合与Java对象相互转换
  4. python url编码 空格_使用请求和python时URL中的空格
  5. python3.7 安装pip3_Ubuntu16.04 安装python3.7和pip3
  6. 信号与线性系统分析_什么是线性系统?如何辨别控制系统?控制系统基本要求是什么?...
  7. 我这么讲线索二叉树,我三岁大的表弟笑了笑
  8. java 静态 二维数组 转化hashmap_将一个二维数组转换为 hashmap 哈希表
  9. inx的c语言表达式,Spninx 解决的问题
  10. uImage和zImage的区别