B. Groups1000 / 暴力枚举
Posted 幽殇默
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了B. Groups1000 / 暴力枚举相关的知识,希望对你有一定的参考价值。
https://codeforces.com/contest/1598/problem/B
暴力枚举所有的俩组的情况,对于每种情况判断可不可以达到要求。
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N][6];
int main(void)
{
int t; cin>>t;
while(t--)
{
int n; cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=5;j++) cin>>a[i][j];
bool flag=false;
for(int i=1;i<=5;i++)//第一组
{
for(int j=i+1;j<=5;j++)//第二组
{
int cnt1=0,cnt2=0,cnt3=0;//cnt1 cnt2 是单独的
for(int k=1;k<=n;k++)//所有的人数
{
if(a[k][i] &&!a[k][j]) cnt1++;
if(!a[k][i]&&a[k][j]) cnt2++;
if(a[k][i] &&a[k][j]) cnt3++;//交集
}
if(cnt1+cnt2+cnt3==n)//人数够全部的
{
if(cnt1>cnt2)
{
int temp=cnt1-cnt2;
if(cnt3>=temp&& (cnt3-temp) %2==0 && (cnt1 || cnt2 || cnt3 ) ) flag=1;
}
else if(cnt1==cnt2)
{
if( cnt3%2==0&& (cnt1|| cnt2 ||cnt3) ) flag=1;
}
else
{
int temp=cnt2-cnt1;
if(cnt3>=temp && (cnt3-temp)%2==0 && (cnt1 ||cnt2 ||cnt3)) flag=1;
}
}
}
}
if(flag) puts("YES");
else puts("NO");
}
return 0;
}
以上是关于B. Groups1000 / 暴力枚举的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #724 (Div. 2) B. Prinzessin der Verurteilung(暴力枚举)
Codeforces Round #444 (Div. 2) B. Cubes for Masha 暴力枚举
A. Lucky Division1000 / 水题 暴力枚举