「杂题乱刷2」CF1738F Connectivity Addicts

news/2025/2/13 23:04:33/文章来源:https://www.cnblogs.com/wangmarui/p/18714562

题目链接

CF1738F Connectivity Addicts

解题思路

我们发现取度数大的点可以建的图显然最优秀,具体原因下面会讲,并且同一个连通块内的节点染成一种颜色一定合法。那么此时我们将所有节点从大到小排序,然后直接暴力建图即可,我们每次询问会存在两种情况,我们设询问到的节点为 \(x\)

  • \(x\) 已经被染上颜色了,那么直接将此节点与 \(x\) 节点连边,退出此节点查询。

  • \(x\) 没有被染上颜色,那么直接将此节点与 \(x\) 节点连边,继续进行此节点的查询。

那么此时由于度数是从大到小连边,此时必定有 \(s_c \le d_c^2\),因为此时点已经与 \(s_c\) 个节点连边,此时设询问的节点为 \(x\)\(i\) 与为 \(x\) 连通的点,设 \(d_x\) 为节点 \(x\) 的度数,由于是从大到小枚举的,那么此时一定有 \(d_i \le d_x\),而连入的点可能会变多,但绝不会变小,若新连入的点为 \(y\),则也必有 \(d_y \le d_x\),此时根据完全平方公式可知原条件一定仍满足,因此该构造方式是正确的。

参考代码

ll ask(ll x)
{cout<<"? "<<x<<endl;ll y;cin>>y;return y;
}
ll n;
pii a[1000010];
ll col[1000010];
ll id;
void solve()
{id=0;cin>>n;forl(i,0,n+5)col[i]=0;forl(i,1,n)cin>>a[i].x,a[i].y=i;sort(a+1,a+1+n);reverse(a+1,a+1+n);forl(i,1,n)if(!col[a[i].y]){vector<ll>v;ll num=0;forl(j,1,a[i].x){num=ask(a[i].y);v.pb(num);if(col[num])break;}ll Col=col[num]?col[num]:++id;col[a[i].y]=Col;for(auto j:v)col[j]=Col;}cout<<"! ";forl(i,1,n)cout<<col[i]<<' ';cout<<endl;
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows知道服务器的内网IP地址如何查看服务器的计算机名称

windows知道服务器的内网IP地址如何查看服务器的计算机名称windows知道服务器的内网IP地址如何查看服务器的计算机名称 nbtstat百度百科 https://baike.baidu.com/item/nbtstat/7578115 windows在局域网内查看ip地址对应的计算机名或者根据计算机名查ip https://blog.csdn.net/…

C++ 使用MIDI库演奏《晴天》

那些在MIDI库里徘徊的十六分音符 终究没能拼成告白的主歌我把周杰伦的《晴天》写成C++的类在每个midiEvent里埋藏故事的小黄花调试器的断点比初恋更漫长而青春不过是一串未导出的cmake工程文件在堆栈溢出的夜晚终将明白有些旋律永远停在#pragma once的注释里有些人永远停在未定…

JUC并发—2.Thread源码分析及案例应用

大纲 1.什么是线程以及并发编程 2.微服务注册中心案例 3.以工作线程模式开启微服务的注册和心跳线程 4.微服务注册中心的服务注册功能 5.微服务注册中心的心跳续约功能 6.微服务的存活状态监控线程 7.以daemon模式运行微服务的存活监控线程 8.一般不常用到的ThreadGroup是什么 …

HashMap 的 put 方法源码分析(JDK 1.8)

一、HashMap 的 put 方法源码分析(JDK 1.8) 以下是 HashMap 的 put 方法的源码(JDK 1.8):hash(key) 方法 hash(key) 方法用于计算键的哈希值:如果键为 null,返回 0。否则,返回键的哈希码与高 16 位的异或结果(目的是减少哈希冲突)。putVal 方法 putVal 方法是 HashMa…

第二章笔记

2.1用二进制数表示计算机信息的原因 IC的所有引脚,只有直流电压0V或5V 两个状态。也就是说,IC的一个引脚,只能表示两个状态。 计算机处理信息的最小单位——位,就相当于二进制中的一位。位的英文bit是二进制数位(binary digit)的缩写。 二进制数的位数一般是8位、16位、3…

基金年结、结账、关账和开账

基金年结、结账、关账和开账是基金公司年底财务工作中的重要环节,不仅涉及资产、负债、所有者权益等七大要素的核算,还需要进行全面的账务处理和数据校验。本文将详细解读基金年结的背景、目的、概念以及具体流程,帮助大家深入了解这一复杂而关键的财务操作过程。其实年结不…

分组密码工作模式-CBC

CBC全称密文分组链接工作模式:是分组密码算法的一种工作模式,其特征是将当前的明文分组与前一密文分组进行异或运算后再进行加密得到当前的密文分组。 在CBC模式下,每个明文分组在加密之前,先与反馈至输入端的前一组密文分组按位异或后,再送至加密模块进行加密。其中,IV是…

基于AutoEncode自编码器的端到端无线通信系统matlab误码率仿真

1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印):仿真操作步骤可参考程序配套的操作视频。2.算法涉及理论知识概要自编码器是一种特殊的神经网络结构,主要由编码器(Encoder)和解码器(Decoder)两部分组成。自编码器的目标是最小化重构误差,常用的重构误…

2-EasyARM i.MX287A开发板 imx-uboot 主线移植

https://github.com/nxp-imx/linux-imx 这里我们使用 lf-6.1.55-2.2.2 分支开始 首先通过硬件原理图找出 ZLG imx287 和 官方开发板 mx28evk 的差异调试串口 mx28evkZLG287这里可以看到官方板用的GPIO3_16/17作为调试串口,ZLG287 GPIO3_16/17被用作I2C,没有接口引出,DUART使…

Langchain的底层原理

Langchain的应用场景 1.个人助手:预定航班 2.学习辅助:参考整个大纲 3.数据分析和数据科学:连接到公司和客户的数据,极大的促进数据的分析

国内服务器docker设置代理【2024年12月】在debian12上测试通过

搬运up主凌冰Koori使用export https_proxy这类环境变量已经失效了。现在可以编辑下面的文件:/etc/docker/daemon.json可能对你来说会提示是新文件,不用管。加入以下配置:{“proxies”: {“http-proxy”: “socks5://127.0.0.1:2080”,“https-proxy”: “socks5://127.0.0.1…

Communication Efficient Large-Scale Training with Adams Convergence Speed

目录概1-bit Adam1-bit SGD代码Seide F., Fu H., Droppo J., Li G. and Yu D. 1-bit stochastic gradient descent and its application to data-parallel distributed training of speed dnns. 2014.Tang H., Gan S., Awan A. A., Rajbhandari S., Li C., Lian X., Liu J., Zh…