CF1365A Matrix Game题解
引用楼下的一句话:
Vivek 和 Ashish 不能在已使用的至少一个单元格的行和列中声明单元格。因此,我们需要查看最初没有使用的任何单元格的行和列的最小数量的奇偶性。
为什么呢?因为一个
其实,不用 STL 容器也能做。
我们先定义两个数组 memset 见祖宗!
AC Code:
#include<bits/stdc++.h>
using namespace std;
int acnt[55],bcnt[55];
int min(int a,int b){
return a<b?a:b;
}
int main()
{
int t;
cin>>t;
for(int i=1;i<=t;i++)
{
int n,m;
cin>>n>>m;
for(int j=1;j<=n;j++)
{
for(int k=1;k<=m;k++)
{
char c;
cin>>c;
if(c=='1')
{
acnt[j]++;
bcnt[k]++;//当前的行和列有1
}
}
}
int r=0,c=0;//因为char c是在循环当中定义的,所以不会撞车
for(int j=1;j<=n;j++)
if(acnt[j]==0)
r++;
for(int j=1;j<=m;j++)
if(bcnt[j]==0)
c++;//找符合要求的行和列
if(min(r,c)%2==0) cout<<"Vivek"<<endl;
else cout<<"Ashish"<<endl;
memset(acnt,0,sizeof(acnt));
memset(bcnt,0,sizeof(bcnt));//多测很糟糕
}
return 0;
}