jsc2019_qualC Cell Inversion
2024-09-05 21:32:08
先吐槽一下这个比赛的奇怪名字
这个破名字让我实在不知道博客标题该叫啥/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 ;
}
最新文章
- 关于Jmeter分布式测试在公司内的使用
- session和cookie
- iOS 使用AFN 进行单图和多图上传
- osgearth_city例子总结
- OpenStack Swift集群与Keystone的整合使用说明
- ERROR 1062 (23000): Duplicate entry &#39;1-1&#39; for key &#39;PRIMARY&#39;
- poj 1321 棋盘问题 递归运算
- 关于Sublime Text编辑器的实用技巧
- 使用docker+jenkins构建nodejs前端项目
- selenium-历史(一)
- 通过BulkLoad快速将海量数据导入到Hbase
- C语言 goto语句
- BZOJ2152[国家集训队]聪聪可可——点分治
- JAVA编程:字符串转为数字求和
- jQuery()方法的第二个参数
- 一波水题 MZOJ 1035: 贝克汉姆
- JdbcTemplate完全学习
- elasticsearch -- 问题纪录
- UML类图(Class Diagram)中类与类之间的关系及表示方式(转)
- Mac OS X下搭建Android开发环境(包括SDK和NDK)