当前位置:网站首页>Codeforces Round #732 (Div. 2) D. AquaMoon and Chess
Codeforces Round #732 (Div. 2) D. AquaMoon and Chess
2022-07-05 05:30:00 【solemntee】
First, let's consider the simpler case
1100000000000 1100000000000 1100000000000
hold 11 11 11 As a group , This group can move on the number axis , The situation of each group corresponds to one s t a t e state state
Extension , For a continuous string of odd length
000011111000000 000011111000000 000011111000000
You can know that there is l e n / 2 len/2 len/2 A mass of , When the number of the left and right groups of this continuous string is determined, this group leaves “1” The location is uniquely determined , Take the example above , You can know that if the two regiments are on the left, what remains is the rightmost 1 1 1, One on the left and one on the right are left in the middle 1 1 1……
Back to the topic , We find all the cliques in a string , Then the conclusion drawn from the above , When the position of the regiment is determined, it is left alone “1” Determine the location , So we only need to consider the position relationship of the Group .
The problem turns into 1 ∗ m 1*m 1∗m Space for n n n individual 1 ∗ 2 1*2 1∗2 Number of options for items . Just write a formula .
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll mod=998244353;
ll poww(ll a,ll b)
{
ll t=1;
while(b>1)
{
if(b%2==1)t=t*a%mod;
a=a*a%mod;
b/=2;
}
return t*a%mod;
}
ll poww1[100005],poww2[100005];
void init()
{
poww1[0]=1;
poww2[0]=1;
for(int i=1;i<=100000;i++)poww1[i]=poww1[i-1]*i%mod;
for(int i=1;i<=100000;i++)poww2[i]=poww2[i-1]*poww(i,mod-2)%mod;
// printf("%lld\n",poww2[3]);
}
char s[100005];
int main()
{
init();
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
scanf("%s",s+1);
int cnt0=0,cnt=0,cnt2=0;
for(int i=1;i<=n;i++)
{
if(s[i]=='0')cnt0++;
if(s[i]=='1')cnt++;
if(s[i]=='0')
{
cnt2+=cnt/2;
cnt=0;
}
}
cnt2+=cnt/2;
printf("%lld\n",poww1[cnt0+cnt2]*poww2[cnt0]%mod*poww2[cnt2]%mod);
}
return 0;
}
边栏推荐
- 质量体系建设之路的分分合合
- 搭建完数据库和网站后.打开app测试时候显示服务器正在维护.
- Chapter 6 data flow modeling - after class exercises
- Sword finger offer 06 Print linked list from beginning to end
- 剑指 Offer 35.复杂链表的复制
- lxml. etree. XMLSyntaxError: Opening and ending tag mismatch: meta line 6 and head, line 8, column 8
- A preliminary study of sdei - see the essence through transactions
- Solution to the palindrome string (Luogu p5041 haoi2009)
- Light a light with stm32
- 每日一题-搜索二维矩阵ps二维数组的查找
猜你喜欢
[to be continued] [UE4 notes] L3 import resources and project migration
[interval problem] 435 Non overlapping interval
Yolov5 ajouter un mécanisme d'attention
Chapter 6 data flow modeling - after class exercises
【Jailhouse 文章】Look Mum, no VM Exits
[depth first search] 695 Maximum area of the island
Yolov5 adds attention mechanism
Sword finger offer 05 Replace spaces
剑指 Offer 04. 二维数组中的查找
Palindrome (csp-s-2021-palin) solution
随机推荐
第六章 数据流建模—课后习题
[trans]: spécification osgi
Sword finger offer 05 Replace spaces
FVP和Juno平台的Memory Layout介绍
Maximum number of "balloons"
Light a light with stm32
lxml. etree. XMLSyntaxError: Opening and ending tag mismatch: meta line 6 and head, line 8, column 8
SAP-修改系统表数据的方法
【Jailhouse 文章】Look Mum, no VM Exits
挂起等待锁 vs 自旋锁(两者的使用场合)
26、 File system API (device sharing between applications; directory and file API)
How can the Solon framework easily obtain the response time of each request?
Developing desktop applications with electron
游戏商城毕业设计
room数据库的使用
[to be continued] I believe that everyone has the right to choose their own way of life - written in front of the art column
注解与反射
Drawing dynamic 3D circle with pure C language
Reflection summary of Haut OJ freshmen on Wednesday
搭建完数据库和网站后.打开app测试时候显示服务器正在维护.