CF 709C

2023-10-26

感谢这个题让我进了前1000

思路(特殊条件切入):

一开始想跑网络流,但边数、点数太多,所以就需要找此题和常规网络流的区别

看到 M/2 ——>尽可能使用M/2这个条件构造解——>少于M/2的全选——>剩下的全是大于M/2的

——>如果每天全是两个以上的,必然可以(极限情况两个全取M/2次)——>一天只有一个的必选,判断合法

——>剩下的往M/2取,取满了换数

 

#include<bits/stdc++.h>

using namespace std;
#define ll long long
ll n,m,a,ansl,T;
int i,j,k,l,x,y,cha[300005],gs[100005]; 
vector<int>o[100005];
vector<int>tu[100005]; 
int ans[100005];

int main()
{
    scanf("%d",&T);
    while(T--)
    {bool keyi=true;
        scanf("%d%d",&n,&m);
        for(i=1;i<=m;i++){ans[i]=0;tu[i].clear(); 
        }
        for(i=1;i<=n;i++){
     gs[i]=0;
     o[i].clear();
     }
        
        for(i=1;i<=m;i++)
        {
            scanf("%d",&l);
            for(j=1;j<=l;j++)
            {
            int now;
            scanf("%d",&now);
            o[now].push_back(i);
            tu[i].push_back(now);
             }
        }
        for(i=1;i<=n;i++)
        {
            if(o[i].size()<=(m+1)/2)
            {
                for(j=0;j<o[i].size();j++)
                {
                    ans[o[i][j]]=i;
                }
            }
        }

        
        
        for(i=1;i<=m;i++)
        {
            if(tu[i].size()==1)
            {int now=tu[i][0];
                gs[now]++;
                ans[i]=now;
                if(gs[now]>(m+1)/2)keyi=false;
            }
        }
        for(i=1;i<=m;i++)
        {
            if(ans[i]==0)
            {
                for(j=0;j<tu[i].size();j++)
                {
                int now=tu[i][j];
                if(gs[now]==(m+1)/2)continue;
                gs[now]++;
                ans[i]=now;
                break;
                } 
            }
        }
        
        if(keyi)
        {
                    printf("YES\n");
        for(i=1;i<=m;i++)
        printf("%d ",ans[i]);
        printf("\n");                
        }
        else{
            printf("NO\n");
            
        }
        
        
        
    }
    
}
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CF 709C 的相关文章

随机推荐

  • JWT

    1 常见的认证机制 1 1 HTTP Basic Auth HTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password 简言之 Basic Auth是配合RESTful API 使用的最简单的
  • SpringBoot整合Shiro

    一 pom xml引入依赖 1 shiro依赖
  • python3+tkinter实践历程(四)——模仿CRT完成基于socket通信与tkinter的TCP串口客户端

    python3 tkinter实践历程 四 基于socket通信与tkinter的TCP串口客户端 仿CRT 文章目录 系列文章目录 分享背景 制作背景 最终功能 工具截图展示 代码详解 系列文章目录 python3 tkinter实践历程
  • 天龙八部手游服务器维护公告,天龙八部手游更新维护公告 龙腾迎春全新资料片来袭...

    天龙八部手游终于迎来全新资料片 龙腾迎春啦 本次更新将加入全新帮派副本决战少室山 并且玩家们可以觉醒独特的至尊武魂 玩家们可以凭自己的喜好改变武魂的外观 一起来了解一下详细更新内容吧 更新时间 1月31日4 00 8 00 更新奖励 300
  • 查看表被数据库中其他对象使用

    select from dba dependencies where referenced name upper xxx
  • java求六位数以内所有自幂数

    如果在一个固定的进制中 一个n位自然数等于自身各个数位上数字的n次幂之和 则称此数为自幂数 以下用java语言求六位数以内所有自幂数 独身数共有9个 1 2 3 4 5 6 7 8 9 水仙花数共有4个 153 370 371 407 四叶
  • angular.js中的复选框checkbox的用法

    首先在head里引入 页面部分 div div div div
  • RestfulTool插件使用详解

    1 全局搜索 2 提供了一个 Services tree 的API接口显示窗口 右侧会有RestServices侧边栏 点击后会显示当前项目所有请求地址 可以进行输入查询 然后会直接把请求方式 地址以及参数列出来 默认请求服务器为本机 lo
  • 【python】socket-传输多个文件、大文件

    socket 传输多个文件 大文件 0 前言 1 发送单个文件流程 2 关于发送大文件 本地读取时报错 MemoryError 3 关于粘包 问题背景 排错过程 解决方案 4 备注 换算表 0 前言 看过挺多个发文件的例子 但是基本都是发单
  • 每日博客 :>

    1 交换数组 define CRT SECURE NO WARNINGS 1 include
  • 计算机网络34-学习笔记-IP地址

    IP地址属于网络层 这里主要介绍IP地址作用 与MAC地址配合 主机H1将数据包发送给路由器R1 在网络层封装的IP数据报首部中 源IP地址应填写主机H1的IP地址IP1 目的IP地址应填写主机H2的IP地址IP2 在数据链路层中源MAC地
  • python装饰器

    装饰器是python一个重要的部分 由它的名称我们就可以大致了解到它的功能 拓展其他函数 装饰器可以让我们的代码更加简洁 也更加pythonic 首先 我们先回顾一下基础概念 一 在python中 如果调用一个函数不带括号时 调用的是这个函
  • R语言多任务处理与并行运算包——foreach

    作者简介Introduction 杜雨 EasyCharts团队成员 R语言中文社区专栏作者 兴趣方向为 Excel商务图表 R语言数据可视化 地理信息数据可视化 个人公众号 数据小魔方 微信ID datamofang 数据小魔方 创始人
  • SpringBoot原理

    1 SpringBoot实现原理 SpringBoot是由自动配置和启动器以及大量注解实现 Stater stater就是启动器 也就是我们在pom xml文件中引入的带stater的依赖 springboot框架会根据依赖加载与该启动器有
  • Shell脚本入门

    Shell脚本入门 1 基本概念 Shell是一门弱类型 解释型 非编译型语言 Shell中无数据类型 Shell的作用是解释执行用户的命令 Shell执行命令的方式有两种 1 交互式 用户输入一条命令 shell就解释执行一条 2 批处理
  • 名为dash的蓝色插嘴小机器人_全球最出色的十大教育机器人

    2016年 阿尔法狗战胜围棋世界冠军李世石 成为人工智能发展的标志性事件 万物互联的时代 人工智能正掀起一场影响深刻的技术革命 谷歌 苹果 BAT 华为巨头们纷纷布局人工智能 有人猜测 互联网 过后 我们可能会迎来机器人 听到这个消息 爸爸
  • [PCIe] SR-IOV (单根虚拟化) 及linux驱动浅析(device的PF和VF及其驱动)

    网上从服务器和虚拟化层面介绍SR IOV应用的文章很多了 本文重点从支持SR IOV的设备 EP 及其驱动来讨论 对于SR IOV的设备 EP 来说 无非就是一个device通过物理功能 PF 虚拟出关联的若干个虚拟功能 VF host的驱
  • 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类, 属性: 员工的姓名,员工的生日月份。 方法:getSalary(

    代码 某公司的雇员分为以下若干类 Employee 这是所有员工总的父类 属性 员工的姓名 员工的生日月份 方法 getSalary intmonth 根据参数月份来确定工资 如果该月员工过生日 则公司会额外奖励100 元 Salaried
  • 在proteus中继电器的驱动与使用

    在进行proteus仿真驱动继电器时候 因为第一次接触和学习继电器遇到了无论采用电源驱动还是三极管放大驱动都无法驱动的问题 所以就查了继电器的资料和proteus中的默认设置 发现原来是proteus中继电器默认驱动电压为12V 所以我们需
  • CF 709C

    感谢这个题让我进了前1000 思路 特殊条件切入 一开始想跑网络流 但边数 点数太多 所以就需要找此题和常规网络流的区别 看到 M 2 gt 尽可能使用M 2这个条件构造解 gt 少于M 2的全选 gt 剩下的全是大于M 2的 gt 如果每