GJ Round (2024.11) Round 22~?

devtools/2024/11/7 0:27:03/

前言:

点此返回 GJ Round 目录

博客园可能食用更佳

Round 22 (11.4)

唯一一次快速补完了题

A

AT_arc077_a [ABC066C] pushpush

不懂这原题标号咋这么奇怪

给你一个序列 a 1 … a n a_1 \dots a_n a1an,按照如下规则构造新序列:

  • a i a_i ai 插入序列末尾
  • 将整个序列反转

模拟 / 打表找规律:

  • n n n 为奇数时,答案为 a n a n − 2 … a 3 a 1 a 2 a 4 … a n − 3 a n − 1 a_n a_{n-2} \dots a_3 a_1 a_2 a_4 \dots a_{n-3} a_{n-1} anan2a3a1a2a4an3an1
  • n n n 为偶数时,答案为 a n a n − 2 … a 4 a 2 a 1 a 3 … a n − 3 a n − 1 a_n a_{n-2} \dots a_4 a_2 a_1 a_3 \dots a_{n-3} a_{n-1} anan2a4a2a1a3an3an1

时间复杂度 O ( n ) \mathcal O(n) O(n)

B

初始给定 n n n 个点 ( x i , y i ) (x_i,y_i) (xi,yi),给两个点 i , j ( i ≠ j ) i,j (i \neq j) i,j(i=j) 连边的代价为 ∣ x i − x j ∣ 3 + ∣ y i − y j ∣ 3 |x_i-x_j|^3+|y_i-y_j|^3 xixj3+yiyj3 q q q 次询问,每次加入一条新边,求每次将所有点连通所花费的最小代价

对原图跑 prim 求最小生成树,保留 n − 1 n-1 n1 条边,再与新加入的 q q q 条边跑 q q q 次 kruskal,时间复杂度为 O ( n 2 + q m log ⁡ n + m log ⁡ m ) \mathcal O(n^2 + q m \log n + m \log m) O(n2+qmlogn+mlogm),其中 m = n − 1 + q , log ⁡ n m=n-1+q,\log n m=n1+q,logn 为并查集的时间复杂度,若是并查集继续使用了启发式合并 / 按秩合并可以优化至 O ( n 2 + q m α ( n ) + m log ⁡ m ) \mathcal O(n^2 + q m \alpha(n) + m \log m) O(n2+qmα(n)+mlogm),其中, α ( n ) \alpha(n) α(n) 为反阿克曼函数

实则还可以不跑 q 次 kruskal,直接 dfs 找环删除环上最大边边即可,时间复杂度为 O ( n 2 + q n ) \mathcal O(n^2 + q n) O(n2+qn)

C

给你两个长度为 n n n 的序列 a , b a,b a,b,保证 ∀ i , j ∈ [ 1 , n ] ∩ Z , i ≠ j \forall i,j \in [1,n] \cap \mathbb Z,i \neq j i,j[1,n]Z,i=j,都有 a i ≠ a j , b i ≠ b j a_i \neq a_j,b_i \neq b_j ai=aj,bi=bj,定义他们的距离为 ∑ i = 1 n ( a i − b i ) 2 \sum_{i=1}^{n} (a_i-b_i)^2 i=1n(aibi)2,求距离的最小值,答案对 998244353 998244353 998244353 取模,并求出最小化距离时所需要交换的次数

对于问题一,显然将 a a a 序列中的第 k k k 大与 b b b 序列中的第 k k k 大排在一起即可,易证

第二问直接 for 模拟一下每个数是否已到对应位置,总时间复杂度为 O ( n log ⁡ n ) \mathcal O(n \log n) O(nlogn)

D

魔法阵是一个任意大小的方阵,满足如下性质:

  1. ( i , j ) (i,j) (i,j) a i , j a_{i,j} ai,j 个魔法石,则有 a i , j ≥ m a_{i,j} \geq m ai,jm
  2. 设魔法阵大小为 k k k,任意从魔法阵中选出 k k k 个格子,满足任意两个格子不在同一行也不在同一列,那么选出的 k k k 个格子的石子数之和是相同的
  3. 魔法阵中对角线石子数之和不能超过 n n n

多测,给定 n , m n,m n,m,求方案数,答案对 998244353 998244353 998244353 取模

容易发现, a i , j = x i + y j a_{i,j}=x_i+y_j ai,j=xi+yj 是一个合法的方阵

钦定 min ⁡ ( x i ) = 0 \min(x_i)=0 min(xi)=0,则方阵与数列之间一一对应,此时 a i j ≥ m a_{i_j} \geq m aijm 等价于 min ⁡ ( y i ) ≥ m \min(y_i) \geq m min(yi)m

不妨将所有的 y i y_i yi 减去 m m m,使得问题转化成至多 ( n − k m ) (n-km) (nkm) 个石子放入 2 k 2k 2k 个格子,且前 k k k 个格子至少有 1 1 1 个没有的方案数,容斥后得:

a n s = ( n − k m + 2 k 2 k ) − ( n − k m + k 2 k ) ans= {n - km + 2k\choose 2k} - {n - km + k \choose 2 k} ans=(2knkm+2k)(2knkm+k)

询问时间复杂度为 O ( ∑ ⌊ n m ⌋ ) \mathcal O(\sum \lfloor \frac{n}{m} \rfloor) O(mn⌋),然后预处理逆元的复杂度只需要 O ( V ) \mathcal O(V) O(V) 即可,其中 V V V 为值域大小


http://www.ppmy.cn/devtools/131877.html

相关文章

后端开发面试题9(附答案)

前言 在下首语言是golang,所以会用他作为示例。 原文参见 @arialdomartini的: Back-End Developer Interview Questions 面向服务架构(SOA)和微服务(Microservice)相关问题 1. 在SOA中,为什么长期存活的事务(Long-lived transation)不被看好,而Saga却被看好? 在面向服务…

Set

1.概念 Set与Map一样是一个接口&#xff0c;是一颗搜索树&#xff0c;所以在创建Set对象时&#xff0c;必须实现其类&#xff08;HashSet或TreeSet&#xff09; Set<String> setnew HashSet<>(); 2.常用方法 注意 Set中只存储key&#xff0c;并且要求key唯一Set…

Apache Dubbo (RPC框架)

本文参考官方文档&#xff1a;Apache Dubbo 1. Dubbo 简介与核心功能 Apache Dubbo 是一个高性能、轻量级的开源Java RPC框架&#xff0c;用于快速开发高性能的服务。它提供了服务的注册、发现、调用、监控等核心功能&#xff0c;以及负载均衡、流量控制、服务降级等高级功能。…

【MySQL】深度学习与解析 : 库的操作知识整合

前言&#xff1a;本节内容是MySQL库的操作&#xff0c; 内容较少&#xff0c; 大体内容为创建库、删除库、修改库、库备份操作。 ps:本节内容适合安装了MySQL的友友们进行观看&#xff0c; 实操更有利于记住哦。 目录 创建数据库 查看数据库列表 创建数据库 删除数据库 …

Array.prototype.push()的理解和手写

1.Array.prototype.push()的用法 Array.prototype.push() 方法用于向数组的末尾添加一个或多个元素&#xff0c;并返回修改后数组的新长度。该方法会直接修改原始数组&#xff0c;而不是创建一个新的数组副本。 以下是 Array.prototype.push() 方法的用法&#xff1a; var ar…

Oracle OCP认证考试考点详解082系列13

题记&#xff1a; 本系列主要讲解Oracle OCP认证考试考点&#xff08;题目&#xff09;&#xff0c;适用于19C/21C,跟着学OCP考试必过。 61. 第61题&#xff1a; 题目 解析及答案&#xff1a; 关于数据库链接&#xff0c;以下哪项陈述是正确的&#xff1f; A. 在一个数据库中…

多模态PaliGemma——Google推出的基于SigLIP和Gemma的视觉语言模型

前言 本文怎么来的呢&#xff1f;其实很简单&#xff0c;源于上一篇文章《π0——用于通用机器人控制的流匹配VLA模型&#xff1a;一套框架控制7种机械臂(改造了PaliGemma和ACT的3B模型)》中的π0用到了PaliGemma 故本文便来解读下这个PaliGemma 第一部分 PaliGemma 1.1 Pal…

软件设计师 7日速成

数据流图和数据字典 数据流图 定义 数据流图是一种图形化的工具&#xff0c;用于描述系统中数据的流动情况。它可以帮助我们可视化数据在系统中的处理过程&#xff0c;包括数据的来源、去向、存储位置以及处理方式。 组成元素 数据流图通常包含以下四个基本元素&#xff1…