2024.12.27 周五

news/2024/12/28 12:02:25/文章来源:https://www.cnblogs.com/jkkk/p/18637364

2024.12.27 周五


Q1. 1100

Alex is participating in the filming of another video of BrMeast, and BrMeast asked Alex to prepare 250 thousand tons of TNT, but Alex didn't hear him well, so he prepared $n$ boxes and arranged them in a row waiting for trucks. The $i$-th box from the left weighs $a_i$ tons.

All trucks that Alex is going to use hold the same number of boxes, denoted by $k$. Loading happens the following way:

  • The first $k$ boxes goes to the first truck,
  • The second $k$ boxes goes to the second truck,
  • $\dotsb$
  • The last $k$ boxes goes to the $\frac{n}{k}$-th truck.

Upon loading is completed, each truck must have exactly $k$ boxes. In other words, if at some point it is not possible to load exactly $k$ boxes into the truck, then the loading option with that $k$ is not possible.

Alex hates justice, so he wants the maximum absolute difference between the total weights of two trucks to be as great as possible. If there is only one truck, this value is $0$.

Alex has quite a lot of connections, so for every $1 \leq k \leq n$, he can find a company such that each of its trucks can hold exactly $k$ boxes. Print the maximum absolute difference between the total weights of any two trucks.


Q2. 1100

You are given an array $a$ of length $n$, consisting of positive integers, and an array $x$ of length $q$, also consisting of positive integers.

There are $q$ modification. On the $i$-th modification ($1 \leq i \leq q$), for each $j$ ($1 \leq j \leq n$), such that $a_j$ is divisible by $2^{x_i}$, you add $2^{x_i-1}$ to $a_j$. Note that $x_i$ ($1 \leq x_i \leq 30$) is a positive integer not exceeding 30.

After all modification queries, you need to output the final array.


------------------------独自思考分割线------------------------

  • 这两道题都和数学有些关系,暴力会超时,通过数学与前缀优化解决。


A1.

  1. 读懂题就是:对于每个可被n整除的数作为一个长度k,对每个长度将n分为n/k连续的块,问块和的最大差值。
  2. 因数最多为 $logn$ ,前缀和优化,时间复杂度 $O(nlogn)$ 。
  3. 初始化最大值上界开小了(区间和),wa一发。

A2.

  1. 若要被 $2^x$ 整除,其后 $x$ 位需要全为 $0$ ,加上 $1<<x-1$ 后,再次遇到 $x$ 就不会有贡献,即需要发现的点是q数组中的数只有第一次出现才会有贡献,因此最多 $30$ 个,两层暴力即可。

------------------------代码分割线------------------------

A1.

#include <bits/stdc++.h>
#define int long long //
#define endl '\n'     // 交互/调试 关
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
void _();
signed main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cout << fixed << setprecision(6);int T = 1;cin >> T;while (T--)_();return 0;
}void _()
{int n;cin >> n;vector<int> pre(n + 1);for (int i = 1; i <= n; i++)cin >> pre[i], pre[i] += pre[i - 1];auto ask = [&](int l, int r){return pre[r] - pre[l - 1];};vector<int> op;for (int i = 1; i <= n; i++)if (n % i == 0)op.push_back(i);int res = 0;auto get = [&](int d){int l = 1, r = d;int maxw = 0, minw = 1e18;while (r <= n){maxw = max(maxw, ask(l, r));minw = min(minw, ask(l, r));l+=d,r+=d;}return maxw - minw;};for (auto d : op)res = max(res, get(d));cout << res << endl;
}

A2.

#include <bits/stdc++.h>
#define int long long //
#define endl '\n'     // 交互/调试 关
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
void _();
signed main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cout << fixed << setprecision(6);int T = 1;cin >> T;while (T--)_();return 0;
}void _()
{int n, q;cin >> n >> q;vector<int> a(n);for (int &x : a)cin >> x;int has[31] = {}; // map自动排序 无法保证原始序列vector<int> b;while (q--){int x;cin >> x;if (!has[x])b.push_back(x);has[x] = 1;}for (auto &x : b)for (auto &a : a){int v = 1ll << x;// bug(v);a += a % v == 0 ? (v >> 1) : 0;}for (auto v : a)cout << v << ' ';cout << endl;
}

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

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

相关文章

CSP-J2/S2 2024 游记

前情提要:CSP-J/S 2023 写这篇文章的时候,心情比较复杂。 哎,结局还算圆满。初赛 之前那个写的不好再写一遍() 两个都在 WFLS,也就是本校考 qaq。 J 在大礼堂考,没啥好说的,太简单了(除了格雷码,好难没学过 /ll) 乐,考试结束前 3min 还在改卷子() 省流:98。 S 在…

部署traefik 1.7服务

部署traefik服务主要是三个yaml文件:traefik-deployment.yaml,traefik-rbac.yaml,ui.yaml也可以使用traefik-ds.yaml,这个方式体现。 [root@k8smaster traefiks]# ll总用量 12-rw-r--r--. 1 root root 1114 12月 26 22:14 traefik-deployment.yaml-rw-r--r--. 1 root root …

2024.12.26 周四

2024.12.26 周四Q1. 1100 There is a ribbon divided into $n$ cells, numbered from $1$ to $n$ from left to right. Initially, an integer $0$ is written in each cell. Monocarp plays a game with a chip. The game consists of several turns. During the first turn, …

UML之集合类型

无论何时当我们要使用一个多值对象时,我们必须要清楚两个问题,一是这些值的顺序重要吗?二是允许重复值的存在吗?在编程语言中还会有其他的明确的信息,在UML中,只需明确这两个问题的答案即可确定对应的集合类型。 1.Set Set是一个不允许存在重复值且未排序的集合。 例如一…

《计算机基础与程序设计》第十四周学习总结

学期(2024-2025-1) 学号(20241412) 《计算机基础与程序设计》第十四周学习总结 作业信息这个作业属于哪个课程 <班级的链接> 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 <作业要求的链接> 2024-2025-1计算机基础与程序设计第十四周作业)教材学习内容…

2024-2025-1 20241417 《计算机基础与程序设计》第十四周学习总结

2024-2025-1 20241417 《计算机基础与程序设计》第十四周学习总结 作业信息这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>2024-2025-1计算机基础与程序设计第十四周作业这个作业的目标 <《C语言…

【Windows】 国内安装Scoop包管理器(镜像加速)

由于国内github访问不通畅,且多数开源软件托管在github,导致scoop体验极差,甚至安装Scoop这一步都无法进行。国内有位作者将scoop主程序托管在gitee,增加分流逻辑处理安装与更新所涉及的资源。 链接: https://gitee.com/scoop-installer/scoop 安装scoop主程序 1.1 初次安…

07 _ Load Average:加了CPU Cgroup限制,为什么我的容器还是很慢?

07 _ Load Average:加了CPU Cgroup限制,为什么我的容器还是很慢?你好,我是程远。今天我想聊一聊平均负载(Load Average)的话题。 在上一讲中,我们提到过CPU Cgroup可以限制进程的CPU资源使用,但是CPU Cgroup对容器的资源限制是存在盲点的。 什么盲点呢?就是无法通过CP…

高效搭建Nacos:实现微服务的服务注册与配置中心

Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中。一、关于Nacos 1.1 简介 Nacos(Dynamic Naming and Configuration Service)是阿…

文章评分2

zz:https://blog.csdn.net/Y_sofun/article/details/74502970nodgd的文章由n个小写英文字母组成。文章的一个子串指的是文章中的一段连续的字母,子串的长度就是这一段的字母个数。nodgd在文章中用了排比、对偶、前后照应之类的手法,所以就有很多个子串是相同或者相近的。为了…

02 _ 理解进程(1):为什么我在容器中不能kill 1号进程?

02 _ 理解进程(1):为什么我在容器中不能kill 1号进程?你好,我是程远。 今天,我们正式进入理解进程的模块。我会通过3讲内容,带你了解容器init进程的特殊之处,还有它需要具备哪些功能,才能保证容器在运行过程中不会出现类似僵尸进程,或者应用程序无法graceful shutdow…

Camstar Portal 弹出层的使用:父子页面值传递

效果如下在Onload方法注册事件 protected override void OnLoad(EventArgs e) {try{base.OnLoad(e);SearchBtn.Click += new EventHandler(SearchBtn_Click);TranslateDetails.RowSelected += new JQGridEventHandler(TranslateDetails_SelectChanged);if (SEMI.AppCode.UIUtil…