【解题报告】P8477 「GLR-R3」春分
题目看起来比较魔怔,考虑怎么搞一下。
首先,一个最简单的想法,每对溶液组都配一个板子,可以用 \(n^2\) 个板子解决,看得出来很不优啊,但是可以得到 Sub1 的分数。
节俭一点,我们如果把每个板子都拿出来一面用来对应一种溶液,此时就可以拼起来,只需要 \(2n\) 个板子解决,可以获得 Sub1,Sub2 的分数。
我们发现,上面的做法有一个很严重的缺陷:每个板子都有一面是没有接触过溶液的,我们考虑对这里进行优化。
考虑 \(X\) 没有接触过溶液的背面有什么用,我们把 \(X\) 平均分成两组,一组是 \(X_1 = \{x_1,x_2,\cdots,x_{\lfloor \frac{n}{2}\rfloor}\}\),一组是 \(X_2=\{x_{\lfloor \frac{n}{2}\rfloor+1},x_{\lfloor \frac{n}{2}\rfloor+2},\cdots,x_n\}\)。
我们现在为每个 \(X_1\) 的板子都和 \(Y\) 的分割板子去做实验,此时需要共 \(n+\lceil\frac{n}{2}\rceil\) 个
我们发现此时对于剩下的那一部分我们可以通过对板子进行组合来实现全部覆盖,那么总共需要的就是 \(\lceil\frac{n}{2}\rceil+ n\),通过计算我们可以发现正好多 \(1\),不能通过 Sub3。
因此我们需要对这个算法进行优化,发现其实我们对于奇数的情况完全不需要单独的一个板子,我们在完成翻转后的实验前,可以先让 \(x_n\) 和 \(Y\) 组实验,这样在最后可以减少一块额外的分隔板,因此可以优化到 \(\lfloor \frac{n}{2} \rfloor+n\),完全可以通过 Sub3。
考虑如何通过 Sub4,我们发现 Sub3 里用干净的板子去接触了不干净的板子导致干净的板子被污染了,如果能利用干净的板子就可以更优一点。
如果我们先把 \(X\) 和 \(Y\) 都平均分成三部分,然后先用 \(X_1\) 和 \(Y_{1\sim 3}\) 全部贴一次,此时我们会得到 \(\frac{n}{3} + n\) 个板子。

那么就会形成一个这样的图。

我们此时拿出 \(Y_3\) 翻转用没有染上的那面去染上灰色(灰色那里没有板子),此时我们在 \(Y_3\) 这里直接把 \(X_1\) 被污染的一面的和 \(Y_3\) 被污染的一面拼起来,此时就剩下没有被污染的两面,直接进行 \(X_2\) 与 \(Y\) 的配置即可。

在染上之后我们的 \(X_1\) 两面都被污染了,但是容易发现 \(Y_1\) 和 \(Y_2\) 依然没有被污染。
我们直接把 \(Y_2\) 翻面给 \(X_3\),这样我们就能得到一个左侧 \(X_3\) 右侧 \(Y_2\) 的板子。
我们把原本有一面没被污染的 \(Y_1\) 和 \(Y_3\) 拼过来就行,需要 \(\frac{4n}{3}\) 个板子,能过 Sub4。
看一下 Sub5,我们发现 Sub4 有一些非常不优的地方导致了还可以进一步优化,可以发现在 Sub4 中我们的思路是保证那么一大片全都是空白的才能拼。
但是我们发现事实上我们只需要一个空白板即可。
我们对左边分成 \(4\) 份,对右边分成 \(4\) 份,此时只对于左边的 \(X_1\) 配板,对于右边全部配板。
然后把 \(X_1\) 与 \(Y_{\{1\sim 4\}}\) 全部反应一次,我们把 \(X_1\) 反过来放 \(X_2\),中间隔一个空白板,直接和 \(Y_{\{i\sim 4\}}\) 全部反应一次。
然后用类似上一步的方法进行反应即可,需要 \(\frac{n}{4}+n+1\) 块,可以通过 Sub5。
此时我们发现一件事,诶我们这里 \(X\) 和 \(Y\) 分的总量都是相同的,我们对于左侧分成两部分 \(X_1,X_2\),对于右侧分为三个部分 \(Y_1,Y_2,Y_3\),其中对于 \(X_1\) 配板,同时 \(Y_1,Y_2\) 配板。
我们先对于 \(X_1\) 和 \(Y_1,Y_2\) 进行实验,在试验后我们加入一个空白隔板,让 \(Y_1\) 翻面,此时隔着空白隔板进行 \(Y_3\) 的实验,空白隔板的一面会和 \(Y_1\) 接触导致污染。
此时我们翻转 \(X_1\) 进行 \(X_2\) 的实验,把空白隔板被污染的一面给到 \(X_1\) 被翻转的一面,然后进行实验 \(X_2\) 与 \(Y\) 的实验,由于 \(Y_2\) 还有一面没有被污染,所以刚好能行。
可通过 Sub7。
【解题报告】P8477 「GLR-R3」春分的更多相关文章
- 「ZJOI2016」解题报告
「ZJOI2016」解题报告 我大浙的省选题真是超级神仙--这套已经算是比较可做的了. 「ZJOI2016」旅行者 神仙分治题. 对于一个矩形,每次我们从最长边切开,最短边不会超过 \(\sqrt{n ...
- 「THUSCH 2017」大魔法师 解题报告
「THUSCH 2017」大魔法师 狗体面太长,帖链接了 思路,维护一个\(1\times 4\)的答案向量表示\(A,B,C,len\),最后一个表示线段树上区间长度,然后每次的操作都有一个转移矩阵 ...
- 「AHOI / HNOI2018」转盘 解题报告
「AHOI / HNOI2018」转盘 可能是我语文水平不太行... 首先可以猜到一些事实,这个策略一定可以被一个式子表示出来,不然带修修改个锤子. 然后我们发现,可以枚举起点,然后直接往前走,如果要 ...
- 「CTS2019 | CTSC2019」氪金手游 解题报告
「CTS2019 | CTSC2019」氪金手游 降 智 好 题 ... 考场上签到失败了,没想容斥就只打了20分暴力... 考虑一个事情,你抽中一个度为0的点,相当于把这个点删掉了(当然你也只能抽中 ...
- 「CTS2019 | CTSC2019」随机立方体 解题报告
「CTS2019 | CTSC2019」随机立方体 据说这是签到题,但是我计数学的实在有点差,这里认真说一说. 我们先考虑一些事实 如果我们在位置\((x_0,y_0,z_0)\)钦定了一个极大数\( ...
- 「JOI2019 Final」解题报告
传送门 「JOI2019 Final」勇者比太郎 看懂题就很简单了,后缀和随便维护一下就好了,别用树状数组强加一个\(\log\)就行. 「JOI2019 Final」画展 显然可以先把所有的画框按大 ...
- 「SOL」JOISC2021 解题报告
JOIS(egment-Tree)C 1. 前言 很早之前教练让我们做这套题,我以为这套题应该挺简单,用几天的空余时间就能刷完,结果预想的短周期刷题变成了长周期刷题--(好像是整个团队里最后一个刷完的 ...
- 「TJOI / HEOI2016」字符串
「TJOI / HEOI2016」字符串 题目描述 佳媛姐姐过生日的时候,她的小伙伴从某东上买了一个生日礼物.生日礼物放在一个神奇的箱子中.箱子外边写了一个长为 \(n\) 的字符串 \(s\),和 ...
- 「BZOJ 4228」Tibbar的后花园
「BZOJ 4228」Tibbar的后花园 Please contact lydsy2012@163.com! 警告 解题思路 可以证明最终的图中所有点的度数都 \(< 3\) ,且不存在环长是 ...
- 「BZOJ 3645」小朋友与二叉树
「BZOJ 3645」小朋友与二叉树 解题思路 令 \(G(x)\) 为关于可选大小集合的生成函数,即 \[ G(x)=\sum[i\in c ] x^i \] 令 \(F(x)\) 第 \(n\) ...
随机推荐
- 如何平稳地从nacos迁移到r-nacos?
1. 引言 很多同学了解r-nacos特性后最开始只将r-nacos用于开发测试环境. 经过一段时间的使用后,部分同学有打算生成环境也从nacos迁移到r-nacos. 一些之前使用nacos服务的同 ...
- Jmeter函数助手7-timeShift
timeShift函数用于获取移动时间变化后的指定格式时间. Format string for DateTimeFormatter (optional) (default unix timestam ...
- 【Java】Map 映射接口 概述
Map 映射接口 概述 Map是一个双列数据,存储K-V类型的数据 JDK1.2 - HashMap 是目前Map的主要实现类 JDK1.2 线程不安全的,效率高,可存储null的key和value ...
- 【Java】Enumeration Class 枚举类
枚举类 enum 对象是有限的确定的.属于类的(静态的) 适合定义一组常量 例如固定的一些事物: - 季节 - 性别 - 状态 自定义枚举类的使用 public class EnumerationTe ...
- 【H5】10 嵌入技术
到目前为止,您应该掌握了将图像.视频和音频嵌入到网页上的诀窍了. 此刻,让我们继续深入学习,来看一些能让您在网页中嵌入各种内容类型的元素: <iframe>, <embed> ...
- 【Spring-Security】Re07 持久化的记住我
Security记住我功能底层实现依赖于SpringJDBC组件,如果有持久层框架的话,就由持久层框架实现 演示案例的选型,MysqlJdbc + MybatisStarter <depende ...
- ubuntu 配置NTP时间服务器&&定时同步本地时间
Ubuntu系统: NTP时间服务器的安装: 服务器安装命令: sudo apt-get install ntp NTP服务配置,设置为本地时间服务器,屏蔽默认server,服务器层级设为10: vi ...
- 【转载】 在PyTorch训练一个epoch时,模型不能接着训练,Dataloader卡死——在pytorch中尽量不要使用opencv而是使用PIL
版权声明:本文为CSDN博主「时光碎了天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/u013289254/ ...
- bazel编译报错:absl/base/policy_checks.h:79:2: error: #error "C++ versions less than C++14 are not supported."
使用bazel编译一个软件时报错,报错的信息为: absl/base/policy_checks.h:79:2: error: #error "C++ versions less than ...
- Java数组小白版
一.数组概念 一.数组定义 数组就是指在计算机内存中开辟的连续存储空间,用于存放程序运行中需要用到的一组相同类型数据的容器. 二.数组的声明 +数组的长度 定义数组时需要确定数组的长度(元素的个数), ...