ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

cf练习

2021-11-23 19:01:18  阅读:191  来源: 互联网

标签:有空 cin int 练习 cf 学生 ++ else


(模拟,集合,文氏图)Groups(https://codeforces.com/problemset/problem/1598/B)

题意:n个学生(n为偶数),每个学生都有5个数组来表示他们周一到周五有没有空,问能否将这n个学生分成同样大小的两组,一组再星期a上课,另一组在
星期b上课(a != b)
方法:枚举两个两个日子i, j, 求在i有空的学生数p和在j有空的学生数q,以及i和j都有空的学生数r,如果p <= n / 2 && q <= n / 2 && p + q + r == n则说明可以

#include<iostream>
using namespace std;

int g[1010][5];

void solve(){
    int n;
    cin >> n;
    for(int i = 0; i < n; i ++)
        for(int j = 0; j < 5; j ++)
            cin >> g[i][j];
    
    for(int i = 0; i < 5; i ++)
        for(int j = i + 1; j < 5; j ++){
            int a = 0, b = 0, c = 0;
            for(int k = 0; k < n; k ++)
                if(g[k][i] && g[k][j]) c ++;
                else if(g[k][i]) a ++;
                else if(g[k][j]) b ++;
            if(a <= n / 2 && b <= n / 2 && a + b + c == n){
                cout << "YES" << endl;
                return;
            }
        }
    cout << "NO" << endl;
}

int main(){
    int t;
    cin >> t;
    while(t --) solve();
}

标签:有空,cin,int,练习,cf,学生,++,else
来源: https://www.cnblogs.com/tomori/p/15594658.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有