当前位置:网站首页>Educational Codeforces Round 107 (Rated for Div. 2) E. Colorings and Dominoes
Educational Codeforces Round 107 (Rated for Div. 2) E. Colorings and Dominoes
2022-07-05 05:27:00 【solemntee】
Our idea on this question is , Look at the picture horizontally and vertically .
Obviously, only one color needs to be considered horizontally and vertically .
The problem became 1*n Of all the o square value and .
We can dp Find out , Regard red and blue as 01 strand .
The length is i Of value and
Equal to the length of i-1 Of value and *2 Plus the length is i-1 Of 01 The end of the string is continuous 1 Is the number of odd strings .
And then it's fun ac 了
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll mod=998244353;
ll dp[300005];
char s[300005];
ll poww[300005];
vector<int>pos1[300005],pos2[300005];
int main()
{
ll ji=1,ou=1;
dp[1]=0;
poww[0]=1;
poww[1]=2;
for(int i=2;i<=300000;i++)poww[i]=poww[i-1]*2%mod;
for(int i=2;i<=300000;i++)
{
ll tj=ji,to=ou;
ou=(tj+to+tj)%mod;
ji=to;
dp[i]=(2*dp[i-1]+tj)%mod;
}
int n,m;
scanf("%d%d",&n,&m);
int cnt=0;
ll ans=0;
for(int i=1;i<=n;i++)
{
scanf("%s",s+1);
for(int j=1;j<=m;j++)
if(s[j]=='o')pos1[i].push_back(j),pos2[j].push_back(i),cnt++;
}
for(int i=1;i<=n;i++)
{
int temp=0,last=-1;
for(auto x:pos1[i])
{
if(x==last+1)temp++,last=x;
else
{
ans=(ans+poww[cnt-temp]*dp[temp])%mod;
temp=1,last=x;
}
}
if(temp)
{
ans=(ans+poww[cnt-temp]*dp[temp])%mod;
}
}
for(int i=1;i<=m;i++)
{
int temp=0,last=-1;
for(auto x:pos2[i])
{
if(x==last+1)temp++,last=x;
else
{
ans=(ans+poww[cnt-temp]*dp[temp])%mod;
temp=1,last=x;
}
}
if(temp)
{
ans=(ans+poww[cnt-temp]*dp[temp])%mod;
}
}
printf("%lld",ans);
return 0;
}
边栏推荐
- Warning using room database: schema export directory is not provided to the annotation processor so we cannot export
- To be continued] [UE4 notes] L4 object editing
- Haut OJ 1243: simple mathematical problems
- Use of room database
- Improvement of pointnet++
- Using HashMap to realize simple cache
- 浅谈JVM(面试常考)
- SAP method of modifying system table data
- Yolov5 ajouter un mécanisme d'attention
- Programmers' experience of delivering takeout
猜你喜欢
随机推荐
使用Electron开发桌面应用
数仓项目的集群脚本
Introduction to tools in TF-A
Es module and commonjs learning notes -- ESM and CJS used in nodejs
GBase数据库助力湾区数字金融发展
剑指 Offer 53 - II. 0~n-1中缺失的数字
Using HashMap to realize simple cache
每日一题-无重复字符的最长子串
软件测试 -- 0 序
Under the national teacher qualification certificate in the first half of 2022
[turn to] MySQL operation practice (I): Keywords & functions
记录QT内存泄漏的一种问题和解决方案
[allocation problem] 455 Distribute cookies
注解与反射
Solon Auth 认证框架使用演示(更简单的认证框架)
To be continued] [UE4 notes] L4 object editing
TF-A中的工具介绍
Reader writer model
Acwing 4300. Two operations
sync. Interpretation of mutex source code