hdu6122 数学
来源:互联网 发布:时间浪人网络大电影 编辑:程序博客网 时间:2024/05/29 02:25
#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1005;const int mod=998244353;char s[maxn];int fl[maxn],fr[maxn],sl,sr,flr,n,m,i,j,ans;int quick_mod(ll n,int m){ ll res=1; while(m) { if(m&1) res=res*n%mod; n=n*n%mod; m>>=1; } return (int)res;}void init(){ memset(fl,-1,sizeof(fl)); memset(fr,-1,sizeof(fr)); sr=n; sl=m; flr=-1; ans=0;}int main(){ //freopen("C:\\Users\\杨凡\\Desktop\\数据\\1003.in","r",stdin); int t,i,j,flag; scanf("%d",&t); while(t--&&scanf("%d%d",&n,&m)!=EOF) { init(); for(i=0;i<n;i++) { scanf("%s",s); for(j=0;s[j];j++) { if(s[j]=='?') continue; flag=0; if(s[j]=='B') flag=1; if((i+j)&1) flag=!flag; if(fr[i]==-1) { fr[i]=flag; sr--; } else if(fr[i]!=flag) sr=-1; if(fl[j]==-1) { fl[j]=flag; sl--; } else if(fl[j]!=flag) sl=-1; if(flr==-2) continue; if(flr==-1) flr=flag; else if(flr!=flag) flr=-2; } } if(sl>=0) ans=(ans+quick_mod((ll)2,sl))%mod; if(sl>=0) ans=(ans+quick_mod((ll)2,sr))%mod; if(flr>=-1) { if(flr==-1) ans=(ans-2+mod)%mod; else ans=(ans-1+mod)%mod; } printf("%d\n",ans); } return 0;}
阅读全文
0 0
- hdu6122 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 高吞吐低延迟Java应用的垃圾回收优化
- zoj 3778 Talented Chef
- MySQL表分区使用详解
- 1057: 素数判定
- glibc源码分析之chown系列函数
- hdu6122 数学
- 【Selenium】11异常
- 希尔排序(Shell Sort)
- Spring Bean加载过程
- 51Nod 1298:圆与三角形(计算几何)
- 动态规划:word-break
- 在 request 之间共享 SecurityContext
- lower_bound与upper_bound
- 不安装oracle客户端使用plsql