先吐槽一下这个比赛的奇怪名字

这个破名字让我实在不知道博客标题该叫啥/px

题目大意

给你一个长度为2n的序列

包括W和B

每次可以选一个区间将里面的颜色反转

但是每个点只能被作为端点选一次

问将序列全部变为W的操作方案数

分析

可以将区间左右端点看作左括号与右括号

我们发现对于W一定被偶数个区间覆盖

B一定被奇数个区间覆盖

所以如果当前区间数正好符合则填右括号

否则填左括号改变奇偶性

填每个右括号时匹配的方案数即为剩余左括号数

最终方案乘上排列方案n!即可

代码

#include<bits/stdc++.h>
using namespace std;
const int mod = 1e9+;
char s[];
int n,ans=,num;
int main(){
int i,j,k;
scanf("%d",&n);
scanf("%s",s);
for(i=;i<*n;i++)
if(!(((s[i]=='W')^num)&))num++;
else ans=1ll*ans*num%mod,num--;
if(num!=){puts("");return ;}
for(i=;i<=n;i++)ans=1ll*ans*i%mod;
printf("%d\n",ans);
return ;
}

最新文章

  1. 关于Jmeter分布式测试在公司内的使用
  2. session和cookie
  3. iOS 使用AFN 进行单图和多图上传
  4. osgearth_city例子总结
  5. OpenStack Swift集群与Keystone的整合使用说明
  6. ERROR 1062 (23000): Duplicate entry &#39;1-1&#39; for key &#39;PRIMARY&#39;
  7. poj 1321 棋盘问题 递归运算
  8. 关于Sublime Text编辑器的实用技巧
  9. 使用docker+jenkins构建nodejs前端项目
  10. selenium-历史(一)
  11. 通过BulkLoad快速将海量数据导入到Hbase
  12. C语言 goto语句
  13. BZOJ2152[国家集训队]聪聪可可——点分治
  14. JAVA编程:字符串转为数字求和
  15. jQuery()方法的第二个参数
  16. 一波水题 MZOJ 1035: 贝克汉姆
  17. JdbcTemplate完全学习
  18. elasticsearch -- 问题纪录
  19. UML类图(Class Diagram)中类与类之间的关系及表示方式(转)
  20. Mac OS X下搭建Android开发环境(包括SDK和NDK)

热门文章

  1. spring data jpa 使用SQL语句查询
  2. js获取select下拉框中的值
  3. SpringBoot使用webservice
  4. JAVA总结--java数据类型
  5. vue2.0 watch里面的 deep和immediate作用
  6. ARM汇编1
  7. POJ 1383题解(树的直径)(BFS)
  8. AtCoder Beginner Contest 133 -D — Rain Flows into Dams
  9. Python 中的 os 模块常见方法?
  10. Linux mint启用内核转储