Codeforces Round 973 (Div. 2)

news/2024/9/21 1:14:11/文章来源:https://www.cnblogs.com/EternalEpic/p/18423508

今天这场没准备打的,但是lbw打,我就倒开看看题目了。非常意外的是这场只要做到E就可以100名,而我感觉除了F都是垃圾题。

D. Minimize the Difference

这种求极差的题目很常规,由他那个操作可以看出单调性。故可以两遍二分分别求最小值的最大值和最大值的最小值然后做差,也可以用单调栈去做。

const int N = 2e5 + 5;
int T, n; ll a[N];inline bool check(ll x) {ll sum = 0;for (int i = 1; i <= n; i++) {if (a[i] > x) sum += a[i] - x;if (a[i] < x) {if (x - a[i] > sum) return false;sum -= x - a[i];}} return true;
}inline bool checkII(ll x) {ll sum = 0;for (int i = 1; i <= n; i++) {if (a[i] > x) sum += a[i] - x;if (a[i] < x) sum -= x - a[i], sum = max(sum, 0ll);}if (sum > 0)  return false;return true;
}signed main(void) {for (read(T); T; T--) {read(n); ll mx = 0, mn = 1ll << 62;for (int i = 1; i <= n; i++)read(a[i]), chkmax(mx, a[i]), chkmin(mn, a[i]);ll l = mn, r = mx, ans1 = l;while (l <= r) {ll mid = l + r >> 1;if (check(mid)) ans1 = mid, l = mid + 1;else r = mid - 1;}l = mn, r = mx; ll ans2 = r;while (l <= r) {ll mid = l + r >> 1;if (checkII(mid)) ans2 = mid, r = mid - 1;else l = mid + 1;}
//		writeln(ans1, ' '); writeln(ans2);writeln(ans2 - ans1);}//fwrite(pf, 1, o1 - pf, stdout);return 0;
}

E. Prefix GCD

我们知道在gcd变小的过程中至少要除以二,则gcd收敛的次数是log级别的。故可以贪心找每次填入后前缀gcd最小的数,时间复杂度 \(O(n\log(A))\)

inline int gcd(int a, int b) {return b == 0 ? a : gcd(b, a % b);
}const int N = 1e5 + 5;
int T, n, a[N];signed main(void) {for (read(T); T; T--) {read(n);for (int i = 1; i <= n; i++) read(a[i]);if (n == 1) { writeln(a[1]); continue; }sort(a + 1, a + n + 1);int d = gcd(a[1], a[2]);for (int i = 3; i <= n; i++) d = gcd(d, a[i]);int D = a[1] / d, j = 1; ll ans = D;while (D > 1 && j < n) {int M = INT_MAX, k = j + 1;for (int i = j + 1; i <= n; i++)if (M > gcd(a[i] / d, D)) {M = gcd(a[i] / d, D);k = i;}ans += M; swap(a[j + 1], a[k]); D = M; j++;
//			writeln(D, ' '); writeln(j); }ans += n - j;writeln(1ll * ans * d);}//fwrite(pf, 1, o1 - pf, stdout);return 0;
}

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

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

相关文章

游戏技术

目录显示相关的术语每个帧的像素:分辨率多个帧的刷新:刷新率、帧率每个像素的颜色编码码率显卡渲染技术DLSS2 牺牲画质 提高帧率DLSS3 进一步提高帧率 刷新更流畅 显示相关的术语 每个帧的像素:分辨率 分辨率 = 水平宽度的像素数(列数) x 垂直高度的像素数(行数)速记 分辨率…

痞子衡嵌入式:如果i.MXRT离线无法启动,试着分析ROM启动日志

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦i.MXRT系列MCU的ROM启动日志。关于 i.MX RT 启动问题解决的文章,痞子衡写过非常多,其中大部分都是具体到某一类启动设备下的具体问题分析,比较依赖经验,这些经验当然是非常有用的。此外也有一篇 《…

基于A律压缩的PCM脉冲编码调制通信系统simulink建模与仿真

1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频)4.算法理论概述脉冲编码调制(Pulse Code Modulation, PCM)是一种将模拟信号转换为数字信号的通信技术,广泛应用于电话通信、音频…

室内导航的界面该如何设计

室内导航的界面该如何设计?发点例子你看看

【笔记】机器学习算法在异常网络流量监测中的应用

这段时间在找方向,又看不懂文章,只能先从一些相对简单的综述类看起,顺便学学怎么写摘要相关工作的。机器学习算法在异常网络流量监测中的应用 原文:Detecting Network Anomalies in NetFlow Traffic with Machine Learning Algorithms 原文链接:Detecting Network Anomali…

画5.0

chino 最近摆烂过头了,博客都没有好好更新。 这位想必人尽皆知。

opencascade Bnd_OBB源码学习 OBB包围盒

opencascade Bnd_OBB OBB包围盒前言 类描述了定向包围盒(OBB),比轴对齐包围盒(AABB)更紧密地包围形状的体积。OBB由盒子的中心、轴以及三个维度的一半定义。与AABB相比,OBB在作为非干扰物体的排斥机制时可以更有效地使用。 方法 1. 空构造函数 //! 空构造函数 Bnd_OBB() …

Scala安装与环境配置详解教程

本文参考来源: http://mengmianren.com/zhihuishu2020/641069.htmlScala运行在java的JVM之上,因此需要先安装Java运行环境 一、JDK8的下载和安装及环境变量配置 使用的jdk版本是:jdk-8u191-windows-i586.exe https://pan.baidu.com/s/1RNNb7lcqKHC_2h0iiTlqFg?pwd=9t5e 提取…

day2-2

今天进行了一次小测验,仍与基础的增删改查有关。 题目的要求是通过Java写出一个建议系统,能够历遍输出各个数据,能够添加,删除,修改数据,能够根据编号查找到对应的数据。程序如下该程序能够完成这些要求,也具有一定的健全性。

大学C++程序设计课程开发指南——开发环境搭建

前言 由于某些大学程序设计课程仍然在使用VC6.0这一上古工具,不太适合学生与现代开发生产接轨,并且也有可能出现兼容问题等,故编写此文,仅供参考。 使用 Visual Studio 在介绍Visual Studio(此后简称VS)前,先给大家介绍这一工具的发展。 其前身正是VC6.0(全称Visual C++…

LLM DATASET

大模型的能力来源 https://arxiv.org/pdf/2402.18041 大模型合规来源 https://arxiv.org/html/2402.12193v2 大模型的罪恶检测来源 https://www.kaggle.com/datasets/odins0n/ucf-crime-dataset/data code math https://github.com/mlabonne/llm-datasetsMath & LogicLLMs …