Codeforces Round 1008 (Div. 2)

news/2025/3/19 22:55:57/文章来源:https://www.cnblogs.com/udiandianis/p/18771772

A. Final Verdict

题目大意

给你一个数组a,每次把他拆分为等长的k个子序列,然后用子序列的平均数替换掉这个子序列,问最后能不能让数组只剩下一个数字x

解题思路

无论怎么划分,最后的总值是不变的,所以只需要看总和是不是 n*x 即可

代码实现

#include <bits/stdc++.h>using i64 = long long;int main() {std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);int tt;std::cin >> tt;while (tt--) {i64 n, x;std::cin >> n >> x;std::vector<int> a(n);for (int i = 0; i < n; i++) {std::cin >> a[i];}if (std::accumulate(a.begin(), a.end(), 0ll) == x * n) {std::cout << "YES\n";} else {std::cout << "NO\n";}}
}

B. Vicious Labyrinth

题目大意

给你一个长度为n的数组,设最后的总和为他们当前的位置到n的距离和(从1开始,每个位置可以有多个数字),可以改变他们的位置k次,但是不能原地传送,问最后的最小和是多少

解题思路

显然要让所有的数字尽可能都传送到n的位置,如果不行则传送到n-1,因此只需要根据奇偶性来判断是n还是n-1即可

代码实现

#include <bits/stdc++.h>using i64 = long long;int main() {std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);int tt;std::cin >> tt;while (tt--) {int n, k;std::cin >> n >> k;for (int i = 0; i < n - 2; i++) {std::cout << n - 1 + k % 2 << " ";}std::cout << n << " " << n - 1 << "\n";}
}

C. Breach of Faith

题目大意

数组a的每个数字各不相同,并且满足a1 = a2 - a3 + a4 - a5...,现在删除a中一个数字并打乱顺序得到数组b,要求复原出任意一个可以由b推出的a

解题思路

式子其实就是奇数位置加偶数位置减,所以让奇数位置的数字都是较大的一半,偶数位置是较小的一半就能得到一个数字,使得他是数组最大值,排序之后安装奇偶放置即可

代码实现

#include <bits/stdc++.h>using i64 = long long;int main() {std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);int tt;std::cin >> tt;while (tt--) {int n;std::cin >> n;std::vector<i64> b(2 * n), a(2 * n + 1);for (int i = 0; i < 2 * n; i++) {std::cin >> b[i];}std::sort(b.begin(), b.end());for (int i = 0; i < n - 1; i++) {a[2 * i + 1] = b[i];a[2 * n - 1] -= b[i];}for (int i = n - 1; i < 2 * n; i++) {a[(i - n + 1) * 2] = b[i];a[2 * n - 1] += b[i];}for (auto x : a) {std::cout << x << " \n"[x == a.back()];}}
}

D. Scammy Game Ad

题目大意

游戏关卡有多对左门和右门,每个门执行给定的加法或乘法操作。左右初始人数都为1,要求最大化两条通道的总人数

解题思路

每次计算已经分配的人数和暂时无法确认的人,对于未知分配的人显然乘更优,因此每次都把这部分的都分配给乘的一部分,然后计算这一次可以得到的无法确认分配的人,最后把左右和未知的部分全部加起来即可

代码实现

#include <bits/stdc++.h>using i64 = long long;int main() {std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);int tt;std::cin >> tt;while (tt--) {int n;std::cin >> n;i64 l = 1, r = 1, add = 0;for (int i = 0; i < n; i++) {char op1, op2;int a1, a2;std::cin >> op1 >> a1 >> op2 >> a2;if (op1 == '+' && op2 == '+') {add += a1 + a2;} else if (op1 == '+' && op2 == 'x') {r += add;add = a1 + r * (a2 - 1);} else if (op1 == 'x' && op2 == '+') {l += add;add = a2 + l * (a1 - 1);} else {if (a1 == a2) {add += (l + r + add) * (a1 - 1);} else if (a1 < a2) {r += add;add = l * (a1 - 1) + r * (a2 - 1);} else {l += add;add = l * (a1 - 1) + r * (a2 - 1);}}}std::cout << l + r + add << "\n";}
}

E. Finding OR Sum

题目大意

交换题,未知xy,你可以询问两次n,每次得到 \((n|x)+(n|y)\) 的值,之后给你一个m,要求回答 \((m|x)+(m|y)\) 的值

解题思路

询问形如1010...和0101...的数即可获得xy在奇偶位上的信息,接下来只需要对二进制数的奇偶位判断处理即可

代码实现

#include <bits/stdc++.h>using i64 = long long;const int q1 = 715827882, q2 = 357913941;int main() {int tt;std::cin >> tt;while (tt--) {int a1, a2, x = 0, y = 0, m;std::cout << q1 << std::endl;std::cin >> a1;std::cout << q2 << std::endl;std::cin >> a2;a1 -= q1 * 2;a2 -= q2 * 2;for (int i = 0; i < 30; i++) {if (i & 1) {if (a2 & (1 << i)) {x |= (1 << i);}if (a2 & (1 << (i + 1))) {x |= (1 << i);y |= (1 << i);}} else {if (a1 & (1 << i)) {x |= (1 << i);}if (a1 & (1 << (i + 1))) {x |= (1 << i);y |= (1 << i);}}}std::cout << "!" << std::endl;std::cin >> m;std::cout << (m | x) + (m | y) << std::endl;}
}

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

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

相关文章

在ubuntu系统下与开发板连接问题记录

对我所遇到的问题以及解决方法进行简单的记录在开发板与ubuntu(非虚拟机)连接之后使用lsmod查看是否连接lsusb 我的显示如下:如果可以看到自己的USB设备 那么就说明你已经安装了驱动 如果没有 请安装你的串口对应的驱动 我的驱动是CH340 没有安装的朋友可以去下面网站进行…

maven为什么发生依赖冲突?怎么解决依赖冲突?

maven为什么发生依赖冲突?怎么解决依赖冲突? 我们在开发的时候,偶尔会遇到依赖冲突的时候,一般都是NoClassDefFoundError、ClassNotFoundException、NoSuchMethodError。打开搜索框又发现有这个类,明明就是引入进来了,就是找不到,让人头疼 1. 依赖冲突场景 在maven中依赖…

unstructured

unstructured 是一个开源的 Python 库,专门用于处理非结构化数据,如从 PDF、Word 文档、HTML 文件等中提取文本内容,并将其转换为结构化格式(1)安装依赖库pip install unstructured使用textfrom unstructured.partition.auto import partitionfilename = "a.txt"…

idea如何激活到2099年

前言 最近发现idea如何激活使用的问题、 网络上各种都是骗关注加各种公众号的最后也没有解决问题,下面分享一下我的激活方法是如何激活到2099年。目前适用于idea的所有版本。我以最新的ideaIU-2024.3为例。 一去官网上下载idea 官网下载地址:https://www.jetbrains.com.cn/id…

202108032324 - kafka的生产流程

由上图可以看出:KafkaProducer有两个基本线程: 主线程: 负责消息创建,拦截器,序列化器,分区器等操作,并将消息追加到消息收集器 RecoderAccumulator中; 消息收集器RecoderAccumulator为每个分区都维护了一个Deque<ProducerBatch> 类型的双端队列。 ProducerBatch…

Cython二进制逆向系列(三)运算符

在这篇文章里,我们会讨论Cython是如何处理运算符的(数学运算符、位运算符、in/not in 运算符、 ==运算符与逻辑运算符)。总的来叔其中大部分是调用虚拟机api来实现的。Cython二进制逆向系列(三)运算符在开始前,先给出本文用到的py源代码 def test1(x, y):# 数学运算符a…

QOJ 9785 Shrooks

曼哈顿距离转切比雪夫距离,对限制的贪心满足,扩宽限制,简化信息首先考虑限制的形式:对于两点 \((x_1, y_1), (x_2, y_2)\),要求 \(|x_1 - x_2| + |y_1 - y_2| \le n\)。 但是这个式子与 \(x_1, x_2, y_1, y_2\) 这 \(4\) 个值都强相关,且这里的绝对值也并不好拆开处理。 …

golang的GC机制

一、垃圾回收 什么是垃圾回收?垃圾回收(GC,garbage collection)是自动内存管理的一种形式,通常由垃圾收集器收集并适时回收或重用不再被对象占用的内存,比如众所周知的Java语言就能很好的支持GC。后起之秀——Go语言也同样支持垃圾回收,它使得Go程序员在编写程序的时候不…

fastjson漏洞复现(fastjson 1.2.47)

原理: Fastjson 的 @type 字段允许反序列化时动态指定类,攻击者可以通过指定带有危险行为的类,并结合 RMI/LDAP 远程加载恶意类,从而实现命令执行。开启vulhub靶场//如何验证是否存在fastjson反序列化漏洞 有json数据传输的地方可能存在 可以尝试使用dnslog带外但是不知道…

基于神经网络逆同步控制方法的两变频调速电机控制系统matlab仿真

1.课题概述两电机变频调速系统是一个多输入多输出非线性强耦合的控制系统。本课题使用神经网络构造原系统的a阶逆系统,设计线性闭环调节器进行控制,通过matlab对系统进行仿真。对两电机变频调速系统更为精确地实现了张力和速度间的解藕控制。2.系统仿真结果 (完整程序运行后…

使用gradio实现实时语音识别

这里通过gradio来实现实时语音识别,通过上传一个文件,当点击提交后则在右侧输出其相应识别的文字。 实现代码比较简单,如下所示: import gradiodef convert(file_bytes):# 语音识别方法,其中file_bytes是采样率与对应numpy.ndarray实例return recognition_func(file_bytes[1])d…

英语四级跟练计划第一天

前言 今天给英语四级报了名,以我以往英语的水平来看,如果不早早开始复习,绝无通过的可能,走投无路的我只好去向deepseek求助,上一次320分的考生,这一次该付出何等的努力才可以考到425分,如此为我制定了90天的四级复习计划。我相信有很多人和我一样,都被英语四级通过给困…