当前位置: 首页 > news >正文

CCPC Online 2025 游寄

CCPC Online 2025 游寄

赛时

随机 roll 题,先 roll 到 \(K\) 然后没看懂,又 roll 到 \(E\)

谁家好人上来就把两道签到题就 roll 完了()

和队友讨论了一下 \(E\),发现很简单,队友推了个式子过了

回头一看,发现自己上来先把两个签到 roll 到了

然后转头告诉队友说 \(G\) 会了,我先写 \(G\)

写了一会发现不对,分块的话怎么优化都是 \(O(n\sqrt{n}\log n)\) 的,交了一发 \(TLE\),先换题了

队友在看 \(K\),给我讲了一下题意和思路,根据队友发现的规律,大胆猜测倒序就是最优解,交了一发过了

然后和队友交换题目,我看 \(A\) 队友重构 \(G\)

过了不久,我推了个式子,验算了一下是对的,果断换下队友开写

第一发少考虑情况,第二发过了

又过了一会,队友的 \(G\) 重构完事了,交了两发都 \(T\) 了,同时我在看 \(C\),发现这个就是超级钢琴,简单想了一想细节会了

跟队友说你先别调了我写,然后第一发多测不清空 \(WA\),害得又花了 \(20min\) 写了拍子和对拍,过了

然后剩下 \(40min\),两人对着代码瞪了半天,发现队友写的复杂度是错的

请输入文本

然后紧急想新做法,最后 \(20min\) 的时候想到根号分治,思路会了但是写完只剩下 \(5min\),调了半天没过

题解&补题

E

E题意

两个人打比赛,采用 \(n\)\(\frac{n + 1}{2}\) 胜(\(n\) 是奇数)制,现在已知打了 \(m\) 局分出胜负,问至少看多少局能够知道赢家

E题解

假设 \(A\) 赢了,那么他赢得次数是 \(a=\frac{n+1}{2}\),而 \(B\) 赢的次数是 \(b=m-a\)

\(c=a-b\),那么安排前 \(b\times 2\) 场,双方各赢一半,是猜不出谁最后赢的

只有再看一局才能确定谁赢

最终答案是 \(b\times 2 + 1\)

K

K题意

定义一个长为 \(n\) 的排列的权值是,将这个排列循环位移 \(n\) 次,每位移一次都计算其置换环的数量,将数量累加起来就是这个排列的权值

现在给定 \(n\le 10^3\),要你构造一个排列,使其权值最大。给出构造方案

K题解

诈骗题

手玩发现,倒序的答案是最大的,每次的数量都是 \(\frac{n}{2}\)(大 \(1\) 或小 \(1\)

A

A题意

给你一个 \((n+1)\times (m+1)\) 的矩形(\((0,0)\to (n, m)\)

你要对其中的每一个整点,求以这个整点为一个顶点,其他顶点也是整点的正方形数目,要求正方形必须完全被矩形包含,边长不必是整数

A题解

考虑枚举另一个相邻的顶点,不妨设这个顶点是 \((a+x,b+y)\),这里强制 \(x>0,y\ge 0\)(其他象限只需旋转整个图形即可),另一条以 \((a,b)\) 为顶点的边为这条边逆时针旋转 \(90\degree\)

然后其他两个点的坐标都可以求 \((a-y,b+x),(a+x-y,b+x+y)\)

然后唯一的限制就是这四个点都在矩形内(这里将 \((a,b)\) 平移到 \((0,0)\) 处)

发现对于 \(x, y\) 产生若干限制:

  • \((x, y)\): \(x\le n,y\le m\)
  • \((x+y,x-y)\): \(x+y\le m\)
  • \((-y,x)\): \(x\le m,y\le a\)

建立一个 \(x,y\) 的平面直角坐标系,发现限制变成了一条斜率 \(k=-1\)\(x+y\le m\) 的直线和两条垂直于坐标轴的直线,求一下里面的面积就好

C

C题意

现在有 \(n\) 个点,有一个常数 \(k\),每个点有一个权值 \(t_i\)

在两个点之间连线的代价是 \((t_i+t_j)\mod k\)

问你将所有点连成一个连通块的最小代价

C题解

超级钢琴+启发式合并

首先先排序

然后考虑,对于一个点 \(i\),他最优的链接方案就是,在数轴上依次排开所有点,然后找到 \(k-t_i\) 这个位置放一个指针,一直向后推直到有一个点,那么连接这个点就是最优的(如果右面没有点就从 \(0\) 开始向右推)

考虑和超级钢琴一样的做法,每一个点都找一个最优的链接点,然后扔进堆里边

每次找一个最低的代价联边,然后给这个点再找一个次优的点扔进堆里面

如果当前堆顶的一对点已经在一个连通块里就推到下一个

但是只是这样的话,每个点最多(其实是必然)向后推 \(n\) 次,最后复杂度变成 \(n^2\) 没法接受

考虑到每次操作最浪费时间的就是有很多同连通块的次优点必须走一遍才知道同连通块

不难想到,在数轴上将相邻同连通块的并到一起,遇到的时候直接跳过去

启发式合并一下,每次将小的合到大的上面,然后周围有同连通块就并到一起

做完了

G

G题意

给你一个长度为 \(n\le 10^5\) 的数列 \(A\),每次给出询问 \((q\le 10^5)\) 形如 \(val(x,y)\),需要回答满足 \(1\le i < j\le n,A_i=x,A_j=y\)\((i, j)\) 的数量

G题解

红温题

分块怎么优化都是带一个 \(log\) 过不去

考虑根号分治,将同颜色数量 \(\ge B\) 的称为大颜色,其余称为小颜色

对于大颜色,提前处理一个数组 \(pre_{i, j}\) 表示从 \(1-j\) 中,颜色为 \(i\) 的数量。

  1. 对于大颜色与大颜色的查询可以提前预处理,查询是 \(O(1)\) 的,预处理总共 \(O(n\sqrt n)\)
  2. 对于小颜色与小颜色,直接归并排序时计算满足条件的方案即可,查询复杂度线性 \(O(\sqrt{n})\),不需要预处理
  3. 对于大颜色对小颜色,直接对每一个小颜色位置累加 \(pre\) 值即可,查询也是线性的
  4. 对于小颜色对大颜色,考虑到有等式 \(sum_x\times sum_y=val(x,y)+val(y,x)\),先按照 \(3\) 的方法直接求,然后用等式转化一下就好

做完了

先补到这

http://www.hskmm.com/?act=detail&tid=11029

相关文章:

  • CentOS 7 容器时遇到了 yum update 报错
  • MIT新论文:数据即上限,扩散模型的关键能力来自图像统计规律,而非复杂架构
  • 基于MATLAB的视频动态目标跟踪检测搭建方案
  • U522155 数据生成(小心电脑)
  • 实用指南:OSG中osgFX库
  • 如何将带有线网卡和无线网卡的台式机作为网关/路由器
  • 2025.9.20——1橙
  • 日期
  • 【GAN网络解惑】面向产品的优化:推理裁剪、蒸馏、INT8/FP8 量化,GAN 的真实延迟如何打下来? - 教程
  • 资本与资本主义
  • 202509_NBWS_encoded_csv
  • 滑雪
  • 守序者的尊严
  • 在Ubuntu22.04平台上交叉编译针对Rv1126架构的GCC13.2.0编译器
  • 深度学习(DBBNet重参数化)
  • CAR 细胞疗法:肝癌治疗的曙光与荆棘
  • Java项目案例作业1
  • 配置Spring框架以连接SQL Server数据库
  • 这一辈子大多数日子是无聊的
  • Go 实现验证码识别
  • 跳出 AI 编程的「兔子洞」,4 个实战策略帮你解决90%的死循环
  • 用 PHP 和 Tesseract OCR 识别英文数字验证码
  • 凝望深渊时,深渊也凝望着你(黑洞与摇钱树)
  • 详细介绍:《Vuejs设计与实现》第 16 章(解析器) 中
  • spring项目部署后为什么会生成 logback-spring.xml记录
  • 【解决】Matlab函数体突然不自动缩进了
  • 202509_NBWS_logbool
  • Kubernetes权威指南-深入理解Pod Service
  • 详细介绍:jeecg-boot3.7.0对接钉钉登录(OAuth2.0)
  • C++编程软件 Dev-C++ 安装及使用流程