比赛 |
2025.5.5 |
评测结果 |
WWWWWWWWWW |
题目名称 |
cake |
最终得分 |
0 |
用户昵称 |
郑霁桓 |
运行时间 |
0.030 s |
代码语言 |
C++ |
内存使用 |
3.35 MiB |
提交时间 |
2025-05-05 11:43:52 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m,a[2005][2005],t;
string s;
bool cl(long long xx,long long yy,long long x,long long y){
long long s=0;
for(int i=xx+1;i<=x;i++)
for(int j=yy+1;j<=y;j++)
s+=a[i][j];
return (s!=2);
}
bool f(int xx,int yy){
long long pi=0,pj=0;
for(int i=0;i<n-1;i++)
if(xx&(1<<i)){
for(int j=0;j<m-1;j++)
if(yy&(1<<j)){
if(cl(pi,pj,i+1,j+1)) return false;
else pj=j+1;
}
pi=i+1,pj=0;
}
for(int j=0;j<m-1;j++)
if(yy&(1<<j)){
if(cl(pi,pj,n,j+1)) return false;
else pj=j+1;
}
if(cl(pi,pj,n,m)) return false;
return true;
}
int main(){
freopen("cake.in","r",stdin);
freopen("cake.out","w",stdout);
ios::sync_with_stdio(false);
cin>>n>>m;
if(n>100||m>100){cout<<0;return 0;}
for(int i=1;i<=n;i++){
cin>>s;
for(int j=1;j<=m;j++) a[i][j]=(s[j-1]=='Y');
}
for(int i=0;i<(1<<(n-1));i++)
for(int j=0;j<(1<<(m-1));j++)
if(f(i,j)) t++;
cout<<t;
return 0;
}