20240913

news/2024/10/1 0:06:24

Mr. Wow and Lucky Array

我们可以打一个表找规律,我们会发现,最大的合法的就是 \(0, 1, 0, 1......\),那么假如这个重合了,我们可以把 \(2, 3\) 调换一下顺序即可

#include <bits/stdc++.h>using namespace std;#define int long longconst int N = 1e5 + 5;int t, n, a[N], b[N];void Solve() {cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];b[i] = 0;}for (int i = 2; i <= n; i += 2) {b[i] = 1;}bool flag = true;for (int i = 1; i <= n; i++) {if (b[i] != a[i]) {flag = false;break;}}if (n == 1) {cout << "-1\n";return ;}if (!flag) {for (int i = 1; i <= n; i++) {cout << b[i] << " ";}cout << "\n";}else {b[2] = 0, b[3] = 1;for (int i = 1; i <= n; i++) {cout << b[i] << " ";}cout << "\n";}
}signed main() {cin >> t;while (t--) {Solve();}return 0;
}

Mr. Wow and Dislikes

我们可以发现,数据范围中 \(a > b\),那么我们可以贪心的维护一个 \(priority_queue\),每次将最大的,也就是对顶去除,将其减去 \(b\),闲不住的可以用线段树完成,但是我们可以打一个标记表示对当前这个点减了几次 \(b\) 即可

#include <bits/stdc++.h>using namespace std;#define int long longconst int N = 2e5 + 5;int t, n, a, b, c[N];bool check(int x) {int sum = 0;for (int i = 1; i <= n; i++) {int tmp = max(0ll, c[i] - x * b);sum += (tmp + a - b - 1) / (a - b);}return sum <= x;
}void Solve() {cin >> n >> a >> b;for (int i = 1; i <= n; i++) {cin >> c[i];}int l = 0, r = 1e9 + 10;while (l < r) {int mid = (l + r) >> 1;if (check(mid)) {r = mid;}else l = mid + 1;}cout << l << "\n";
}signed main() {ios::sync_with_stdio(0);cin.tie(0);cin >> t;while (t--) {Solve();}return 0;
}

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

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

相关文章

AnimationClip优化工具 - 删除连续相同的帧

下图中Rotation.z的前4个关键帧[0, 3](即15帧, 30帧, 45帧, 60帧),值都没变; (3, 4)Rotation.z变为60(即61帧到90帧); 后3个关键帧[5, 7]一直维持在60没变。可以分析下:前4个关键帧,[1, 2]删除对动画没影响,后3个关键帧[5, 7]删除对动画也没影响。public class AnimC…

实验1 C语言输入输出和简单程序编写

一,实验目的 1. 会使用C语言程序开发环境(vs2010/devc++等),能熟练、正确使用它们编写、编译、运行、调 试C程序 2. 知道C程序结构和编码规范,能正确使用 3. 能正确、熟练使用C语言输入输出函数: scanf() , printf() , getchar() , putchar() 4. 能灵活、组合使用基本数据…

VScode Cmake-tools 部分问题记录

我的 Visual Studio Code 先前一直安装了 cpp-tools 和 cmake-tools。随后,我升级了我的 GCC 环境版本。然而,重新启动 Visual Studio Code 后,旧的 GCC 版本仍保留在工具包中。起初,我以为是 cpp-tools 插件的问题,一直无法解决这个 bug。后来卸载了相关插件后才发现是 c…

数组0.1

一维数组 数组的运用场合 当我们需要涉及的变量特别多,光想名字都要想半天 所以引入数组 Q: (1)在程序中怎样存放100个学生的成绩? (2)定义100个整型变量吗? (3)C语言中的解决方案是……? A: (1)存储学生成绩用整型数组 mark[100]; (2)存储一行文字用字符数组 …

opencascade AIS_WalkDelta、AIS_ViewInputBuffer源码学习工作

opencascade AIS_WalkDelta 前言 运行方法 1. 空构造函数。 AIS_WalkDelta() : myIsDefined(false), myIsJumping(false), myIsCrouching(false), myIsRunning(false) {} 2. 返回平移组件。 const AIS_WalkPart& operator[] (AIS_WalkTranslation thePart) ; 3. 返回平移组…

2023-9-30

标签之文本标签列表标签之有序列表列表标签之无序列表

[物理]运动学基础理论串讲

运动学基础理论串讲 公式 推论 前言:运动学中,所有的公式都有其对应的几何意义。解决问题时,我们不应死套公式,应当在图像中解决问题。在图像中看清问题的本质。 \(v_t=v_0+at\)。已知初速度和加速度求末速度。 \(x=v_0t+\dfrac{1}{2}at^2\)。算位移的基础公式。 \(v_t^2-…

深度学习(输出模型中间特征)

深度学习骨干网络一般会包含很多层,这里写了一个脚本,可以保存骨干网络的所有特征图。 代码主要用了get_graph_node_names和create_featrue_extractor这两个函数。 get_graph_node_names是得到所有特征节点名字。 create_featrue_extractor是提取对应节点输出的特征tensor。 …