之前求2的n次方方法还很传统,甚至想到了快速幂。结果这次写题居然爆了long long。
所以从此学会了2的n次方计算方法是
int a=1<<n;
然后自己花了好久的时间还在研究杨辉三角每个数字是不是组合排列数,每行之和是不是2的n次方。调试了几次代码。
行吧,我就是今天写ACWing周赛学到的。只有考试遇到了才会永远记住!!!
方块集数量
#include<bits/stdc++.h>
using namespace std;
const int N=55;
const int M=55;
int hang[N],lie[N];
int main(){
int n,m,c;
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>c;
if(c==1){
hang[i]++;
lie[j]++;
}
}
}
long long sum=0;
for(int i=0;i<n;i++){
sum+=(1ll << hang[i])-1;
sum+=(1ll << m-hang[i])-1;
}
for(int j=0;j<m;j++){
sum+=(1ll << lie[j])-1;
sum+=(1ll << n-lie[j])-1;
}
cout<<sum-n*m<<endl;
return 0;
}