Технокубок 2021 - Финал C. Basic Diplomacy

news2025/1/13 7:31:27

翻译:

Aleksey有𝑛个朋友。他现在也在度假,所以他有𝑚天来玩这款新的病毒式合作游戏!但由于它是合作的,阿列克谢将需要一个队友在每个𝑚天。

在这些日子里,每天都有一些朋友可以玩,而所有其他人都不能。每天Aleksey都必须选择一个朋友邀请他玩这个游戏(当然,他们总是同意)。然而,如果他们中的任何一个人被严格地选择超过⌈𝑚/2⌉次,那么所有其他朋友都被冒犯了。当然,阿列克谢不想冒犯任何人。

帮助他选择队友,这样没有人被严格选择超过⌈𝑚/2⌉次。

输入
每个测试包含多个测试用例。第一行包含测试用例的数量𝑡(1≤𝑡≤10000)。测试用例的描述如下。

每个测试用例的第一行包含两个整数𝑛和𝑚(1≤𝑛,𝑚≤100000),分别代表好友数和游戏天数。

下面的𝑚行中的𝑖-th包含一个整数𝑘𝑖(1≤𝑘𝑖≤𝑛),后面跟着𝑘𝑖不同的整数𝑓𝑖1,…,𝑓𝑖𝑘𝑖(1≤𝑓𝑖𝑗≤𝑛),以空格分隔-𝑖当天可用好友的索引。

保证所有测试用例中𝑛和𝑚的总和不超过100000。可以保证所有𝑘𝑖在所有测试用例的所有日子里的总和不超过200000。

输出
打印每个测试用例的答案。如果没有办法实现目标,就打印“no”。

否则,在第一行打印“YES”,在第二行打印𝑚空格分隔的整数𝑐1,…,𝑐𝑚。每个𝑐𝑖必须表示在𝑖日所选择的朋友(因此必须是𝑓𝑖𝑗中的一个)。

任何值都不能出现超过⌈𝑚2⌉次。如果有不止一个可能的答案,打印任何一个。

例子
inputCopy
2
4 - 6
1
2 1 2
3 1 2 3
4 1 2 3 4
2 2 3
1 3
2 - 2
1
1
outputCopy
是的
1 2 1 1 2 3
没有

思路:一道经典的贪心题,如果没有办法实现,那么明显就是一个朋友不得不被选择m/2次(向上取整)。所以不得不被选择,只有当天有一个人的时候存在,这样的话,这天就是固定的,我们记录上选的次数,然后之后贪心。优先选没有选过,或者被选的次数少的即可,暴力过题。

代码:

/*Looking! The blitz loop this planet to search way
 
 Only my RAILGUN can shoot it 今すぐ
 
 身体中を  光の速さで
 
 駆け巡った確かな予感
 
 掴め! 望むものなら残さず
 
 輝ける自分らしさで
 
 信じてるよ  あの日の誓いを
 
 この瞳に光る涙それさえも  強さになるから
 
 */
#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <math.h>
#include <stdio.h>
#include<vector>
#include<queue>
#include<map>
#include<set>
#include<tuple>
#include<numeric>
#include<stack>
using namespace::std;
typedef long long  ll;
int n,t;
inline __int128 read(){
    __int128 x = 0, f = 1;
    char ch = getchar();
    while(ch < '0' || ch > '9'){
        if(ch == '-')
            f = -1;
        ch = getchar();
    }
    while(ch >= '0' && ch <= '9'){
        x = x * 10 + ch - '0';
        ch = getchar();
    }
    return x * f;
}
inline void print(__int128 x){
    if(x < 0){
        putchar('-');
        x = -x;
    }
    if(x > 9)
        print(x / 10);
    putchar(x % 10 + '0');
}

int m,num,kl;
int bj[100005];
void wanyurukong(){
    cin>>n>>m;
    for (int i  =1; i<=n; i++) {
        bj[i]=0;
    }
    int flag=0;
    vector<int>ss[m+1];
    for (int i =1; i<=m; i++) {
        cin>>num;
        for (int j =1; j<=num; j++) {
            cin>>kl;
            ss[i].push_back(kl);
        }
        if (num==1) {
            bj[kl]++;
        }
        if (bj[kl]>(m+1)/2) {
            flag=1;
        }
    }
    if (flag) {
        printf("NO\n");return;
    }
    printf("YES\n");
    for (int i =1; i<=m; i++) {
        if (ss[i].size()==1) {
            printf("%d ",ss[i][0]);
            continue;
        }
        int xx=1e7,ls=0;
        for(int j=0 ;j<ss[i].size();j++){
            if (bj[ss[i][j]]<xx) {
                xx=bj[ss[i][j]];
                ls=ss[i][j];
            }
        }
        printf("%d ",ls);
        bj[ls]++;
    }
}
int main(){
    ios::sync_with_stdio(false);
    cin.tie(); cout.tie();
    cin>>t;
    while (t--) {
        wanyurukong();
        //    }
        //wanyurukong
        
    }
    
}
 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117854.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring 依赖注入

文章目录流程图依赖注入的方式手动注入自动注入XML的autowire自动注入autowire BY_NAME 与 BY_TYPE(已过时)执行时机&#xff1a;AUTOWIRE_BY_NAMEAUTOWIRE_BY_TYPEAutowired注解的处理(含Value&#xff0c;Inject)AutowiredAnnotationBeanPostProcessorresolveDependencyfindA…

机器学习——线性模型学习

线性回归 主要目标确定 如何确定w和b呢&#xff1f;关键在于如何衡量f(x)与y的差别 此种衡量误差的方法称为均方误差也称为欧式距离 求解w和b使上述方程最小化的过程称为线性回归模型的最小二乘”参数估计“ 多元线性回归 针对多个属性的数据集D&#xff0c;此时试图学得 …

DHCP学习

目录 DHCP基本认识和原理 场景一、同网段DHCP 场景二、不同段DHCP&#xff08;中继DHCP&#xff09; DHCP基本认识和原理 DHCP&#xff08;Dynamic Host Configuration Protocol动态主机协议&#xff09;。 作用&#xff1a;为局域网络中主机动态分发地址&#xff0c;以及…

INMP441麦克风芯片--支持I2S、ESP32

1.简介 INMP441是InvenSense公司推出的一款具有底部端口的高信噪比、低功耗、数字输出的全向MEMS麦克风&#xff0c;信噪比高达61dB&#xff0c;使其成为近场应用的绝佳选择。INMP441的电路结构如图所示&#xff0c;包括MEMS声音传感器、模数转换器&#xff08;ADC&#xff09…

人工智能的2022:技术的价值在于生产力

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

孤独的照片(思维)

Farmer John 最近购入了 NN 头新的奶牛&#xff0c;每头奶牛的品种是更赛牛&#xff08;Guernsey&#xff09;或荷斯坦牛&#xff08;Holstein&#xff09;之一。 奶牛目前排成一排&#xff0c;Farmer John 想要为每个连续不少于三头奶牛的序列拍摄一张照片。 然而&#xff0…

初识Kubernetes:(2)Kubernetes环境搭建

初识Kubernetes&#xff1a;&#xff08;2&#xff09;Kubernetes环境搭建1 环境规划1.1 集群类型1.2 安装方式2 环境搭建2.1 minikube安装2.2 启动集群3 服务部署1 环境规划 1.1 集群类型 Kubernetes集群大致分为两类&#xff1a;一主多从和多主多从。 一主多从&#xff1a…

UE4 shader编程 基础学习笔记 --- 熟悉各个节点

Texture Sample&#xff1a;用所需要的纹理覆盖到Mesh上&#xff0c;展示效果&#xff0c;Mesh上存在漫反射 高光 环境变量的和制造出了左上角的纹理光照效果 该节点只能设置其黑白效果 0为黑&#xff0c;1为白 该节点可以调节R、G两个参数 该节点可以调节RGB三个参数 该节…

C#---第十八课:Debug调试技巧--Debug类、pin 、add watch、拖动断点、修改变量、两个断点的联动

文章目录1. 在output窗口中输出变量的内容----Debug类2. Pin变量 / add watch 实时监控变量的变化(1) pin to sources(2) add watch3. 自由拖动黄色箭头图标4. 直接修改变量的值5. 两个断点的联动&#xff08;当一个断点触发&#xff0c;另一个断点才会触发debug&#xff09;1.…

变革:区块链上的政府和企业应用

发表时间&#xff1a;2022年5月12日 信息来源&#xff1a;coingeek.com 区块链只与数字货币和金融交易挂钩的时代已经过去了。这项技术在过去十年中不断发展&#xff0c;今天&#xff0c;它为游戏、社交媒体应用、医疗保健以及供应链管理等多个领域提供着支持。相比其它领域&am…

SpringBoot 整合【Mybatis-Plus实现分页查询】

目录 1. 添加pom.xml依赖 2. 配置application.yml文件 3. mybatis-plus插件配置核心类 4. 启动类配置 5. 测试数据Sql脚本 6. mybatis-plus代码生成 7. 测试分页查询 1. 添加pom.xml依赖 <!--mybatis-plus--><dependency><groupId>com.baomidou</g…

Weighted Logistic Regression和Youtube时长预估

前段时间阅读了youtube的经典论文《Deep Neural Networks for YouTube Recommendations》&#xff0c;其通过weighted LR来实现时长预估&#xff0c;在其原文中对实现的描述非常短&#xff0c;大概意思是在损失函数中&#xff0c;对正例&#xff08;点击&#xff09;的交叉熵项…

中断的分类,中断指令,中断类型码,中断向量表,中断优先级

目录 PC机的中断系统 中断的分类 内部中断&#xff08;软件中断&#xff09; 故障 陷阱 异常终止 中断指令 指令类型中断指令 INT N 溢出中断指令 INTO 中断返回指令 IRET 外部中断&#xff08;硬件中断&#xff09; 非屏蔽中断&#xff08;NMI&#xff09; 可…

Springboot实现定时任务调度

前言 今天给大家分享一下&#xff0c;如何使用springboot快速实现简单的定时调度任务&#xff1f;有两种方法&#xff1a;基于注解的声明式调度任务注册&#xff1b;另外一种是基于实现SchedulingConfigurer的编程式的调度任务注册。 1. 基于注解&#xff08;Scheduled&#…

Problem Set 2

Regularized Normal Equation for Linear Re-gression Given a data set {ar(), y()}i1,.-.,m with x()∈ R" and g(∈ R, the generalform of regularized linear regression is as follows n (he(zr)- g)3入>0号 (1) ” 2m i1 j1 Derive the normal equation. 设 X[(…

P7 PyTorch 属性统计

目录 Norm min max argmax argmin prod sum dim keepdim topk & kthvalue eq&equal一 Norm 作用&#xff1a; 求范数 1.1 1阶范数 # -*- coding: utf-8 -*- """ Created on Thu Dec 22 21:48:02 2022author: cxf """ import torc…

前端_Vue_8.生命周期钩子、侦听器

文章目录一、生命周期钩子1.1. 注册生命周期钩子1.2. 生命周期图示二、侦听器2.1. 基本示例2.2. 深层侦听器2.3. 即时回调的侦听器2.4. 回调的触发时机2.5. this.$watch()2.6. 停止侦听器一、生命周期钩子 每个Vue组件实例在创建时都需要经历一系列的初始化步骤&#xff0c;比…

重要升级:SpreadJS 16.0 crack SpreadJS 2023

SpreadJS 16.0 crack&#xff0c;建议大家赶紧升级&#xff0c;速度提升65% Adds enhancements for TableSheet, Designer, Calculation, Shape and Workbook. December 22, 2022 - 16:53New Version Features New File Format New .sjs file format makes the ExcelIO process…

Java语法:final关键字

一、final是什么&#xff1f; final关键字是最终的意思&#xff0c;可以修饰&#xff08;类、方法、变量&#xff09;。 二、final的作用 修饰类&#xff1a;表明该类是最终类&#xff0c;不能被继承&#xff1b; 报错说明&#xff1a;不发从最终的Animal类继承 修饰方法&…

数论专题(2)莫比乌斯反演

今天我们开始莫比乌斯反演的学习.这篇博文特别多的公式,强迫症患者请勿观看 莫比乌斯反演 莫比乌斯函数: 定义莫比乌斯函数,当时,. 当是square-free number时,设的质因数分解有项,则; 否则,; 根据上面,我们不难验证也是积性函数 定理 ,即和互为彼此的逆 证明 设n的不…