Codeforces Round 999, Div. 1 + Div. 2 部分题解

news/2025/1/21 12:43:40/文章来源:https://www.cnblogs.com/-cchen-/p/18683280

fst 掉大分了...

B. Kevin and Geometry

由于这题赛后被叉了,就放上来了。

题意

给定 \(n\) 个数,选出 \(4\) 个数组成一个等腰梯形。

题解

等腰梯形要求腰的两倍加上下底的最小值大于最大值。

对数组排序,枚举哪个数作为腰,接着选出去掉这两个腰后差最小的两个数即可,设当前选的腰为 \(a_i,a_{i+1}\) ,考虑选择 \(a_{1\cdots i-1}\) 中的两个数,\(a_{i+2 \cdots n}\) 中的两个数,以及 \(a_{i-1},a_{i+2}\) 。前两个用前后缀预处理一下。

关于 \(a_{i-1},a_{i+2}\) ,比如 \(1,2,2,3\) 这种的,pretest 没有这种数据,你这 pretest 是什么东西?????

参考实现

E. Kevin and And

题意

\(n\) 个数 \(a_n\)\(m\) 个数 \(b_m\),一次操作可以选择 \(i \leq n, j\leq m\),使 \(a_i=a_i \And b_j\) ,最多操作 \(k\) 次,使得最后的 \(\sum a_i\) 最小。

\(m \leq 10\)

题解

先求出对于每个 \(a_i\) ,操作 \(k\) 次后能变成的最小值是多少,注意有个错误的贪心做法:第 \(k\) 次的最小值是第 \(k-1\) 次的最小值再选一个数,比如 \(a=1111,b=[1010,0101,0011]\) 。因此我们需要枚举 \(b\) 的所有组合,设为 \(f_{i,k}\)

有个结论:\(f_{i}\) 是凸的,感性理解一下:每次多选择一个数操作时,限制总是更严格的。

于是我们像堆模拟搜索那样,选前 \(k\) 个让差最大的操作就行了,由于 \(f_i\) 是凸的,我们可以把所有的 \(f_{i,k}-f_{i,k+1}\) 丢进去,选前 \(k\) 大就行。

参考代码

G. Kevin and Teams

参考了官方题解。

真人类智慧,传奇 ioi 出题组恐怖如斯。

题意

给定 \(n\) ,求出最大的 \(k\) ,使得对于任意 \(n\) 个点组成的无向图,总存在 \(k\) 对互不相同的点 \((a_1,b_1),(a_2,b_2) \cdots (a_k,b_k)\) ,使得所有的 \((a_i,b_i)\) 要不都有连边要不都没有连边。

求出 \(k\) 后,你需要进行交互,交互库有一个隐藏的无向图,你可以问 \(n\) 次两个点是否有连边,并构造 \(k\) 对点出来。

交互库是自适应的。

题解

对于点 \(u,v,k\) ,若 \((u,v)\)\((v,k)\) 的连通性不同,那我们把 \((u,v,k)\) 三元组拿下来,三个点中总有一对点满足 连边 或 不连边。

我们证明 \(k=\lfloor\frac{n+1}{3} \rfloor\)

证明上界,构造 \(2\times \lfloor\frac{n+1}{3} \rfloor + [n ~ mod ~ 3 =1]\) 个点的团,其余点不连任何边,达到上界。

下面构造的证明可行性:

我们维护一条链,链上相邻的点连边情况均相同,每次加入一个点时,若该点和链尾的连边情况和链相同,则将这个点加入链。否则,脱去从链尾数两个点,加上这个点构成一个三元组,注意若链长小于 \(2\) 要重新维护这条链。

最劣的情况是:最终链长小于 \(2\) ,此时至少能脱下 \(k\) 个三元组。

若链长大于等于 \(2\) ,则链的相邻点全部组合起来,加上脱下的三元组,也总有 \(k\) 对点满足题意。

参考代码


别的题在赶来的路上。

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

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

相关文章

识别两个表格文件,根据手机号进行匹配相同行并按照需要字段输出

python代码# -*- coding: utf-8 -*- # encoding:utf-8 from flask import Flask, render_template, request, send_file,jsonify import os, requests import pandas as pd from datetime import datetime, timedelta import time, json from log import logging import thread…

语音播报,套件多少异常的问题。(含源代码)

在工作中遇到一家工厂老板的需求:因为产品是有多个配件组成,在生产的时候,经常会多生产,少生产,在组装时,也会出现配件多少的问题,现就此问题设计一款程序。多出,少的,异常的,正常好,会开语音播报。现将全部代码给出以备。 import inspect import os import threadi…

EDMA3学习笔记1

1.1 EDMA3简介 EDMA3(Enhanced Direct Memory Access 3):增强型直接存储器访问的控制器。它是DSP中一个高级数据传输引擎,其结构适合数据的高速传输,可以在没有CPU主要参与的情况下,由控制器完成数据转移,主要服务外部内存(DDR)、片上内存(L2 SRAM)以及串口外设等。…

又一个新项目完结,炸裂!

除了全程直播讲解的、50 个小时的保姆级视频教程之外,我还写了整套文字教程(15 万多字),细致入微!大家好,我是程序员鱼皮。经过了 2 个月的爆肝,我在自己的编程导航的第 11 套有 保姆级教程 的大项目 —— 企业级智能协同云图库平台,完结啦!除了全程直播讲解的、50 个…

kylin V10 SP2 离线单机部署tidb v8.3.0

准备离线组件包 在官方下载页面选择对应版本的 TiDB server 离线镜像包(包含 TiUP 离线组件包)。需要同时下载 TiDB-community-server 软件包和 TiDB-community-toolkit 软件包。 部署离线环境TiUP组件 将离线包传至服务器,执行以下命令安装 TiUP 组件: tar zxvf tidb-comm…

生成型AI应用的质量为何常常不尽人意,以及如何改进

生成型AI应用的质量为何常常不尽人意,以及如何改进2025年,图片来源:elements.envato.com,Marcel Mller 编辑过去两年,生成型AI的热潮席卷了商业世界。这项技术可以提高业务流程的执行效率,减少等待时间,降低过程缺陷。像ChatGPT这样的接口使得与大型语言模型(LLM)的互…

C# WEB API windows server 发布注意事项

1、使用背景: 数据请求方通过接口获取数据,同时使用方通过用户名称进行功能限制;2、实现方法: C# web服务功能,不同机型使用不同接口进行数据获取,请求数据需要包含产品条码信息、请求方用户名信息; 接口请求如下: 3、部署注意事项: 在windows server IIS 管理器中添…

菜单权限的设计与实现

说明该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发)。该系统文章,我会尽量说的非常详细,做到不管新手、老手都能看懂。说明:OverallAuth2.0 是一个简单、易懂、功能强大的权限+可视化流程管理系统。 友情提醒:本篇文章是属于系列文章,…

第十一章 成本管理(2025年详细解析版)

目录导语章节介绍什么是成本管理?关注两类成本11.1 管理基础项目成本管理的作用和意义项目成本失控原因(了解)成本类型机会成本沉没成本发展趋势和新兴实践如何计算进度偏差?11.2 项目成本管理过程过程概述项目成本管理过程裁剪时需要考虑的因素(不重要)在敏捷或适应型环…

寒假

今天继续学习Android Studio,今天学习的基础空间Button和EditText两个组件,了解了它们的属性,设计了一个简单的登录页面尝试获取前端的输入的信息,目前还未成功,经过学习,觉得融会贯通,目前认为,xml对应javaweb中的前端html页面,activity对应javaweb中的后端中的Contr…