\(\text{简要题解}\)

\(\text{GDOI2012}\) 的题

不得不说当年的题做起来真的很不爽

整体看起来就是数据结构+博弈论+宽搜+背包dp优化

考场上 \(T1\) 十分钟解决过了

看完题就知道多开点线段树或树状数组维护原序列和同颜色序列就行了

线段树的话可以线段树上二分做到一只 \(\log\)

树状数组就得套个二分上去要两只 \(\log\)

不过树状数组代码太短了,又不容易出错,必须得上它啊

尽管是两只 \(\log\),不过能够就好了

\(T2\) 交替搜索记忆化稳拿 \(30pts\) 也过了

尝试发现性质发现情况还想有点多。。。

赛后听讲题人的明白了一个巧妙地转化

把每个 \(1\) 前面的 \(0\) 数量弄出来,必败状态就是将这些数字削成 \(0\)

移动操作相当于给一个数 \(-1\),或同时给两个相邻且大小相同的数 \(-1\)

两个结论:偶数对胜负无影响,三个相邻且相同的数也一样,都可删去,只考虑简化后的数列

简化后的数列是由一些不相同的数和若干对两个相邻且相同的数组成

然后必败态就是第一种数个数和第二种数对个数都为偶数

证明考虑把偶数丢给对方,对方丢过来必然是奇数,削成偶数仍回去,直到为 \(0\) 便胜了

看了 \(T3\),犹豫了一会,这大力模拟暴搜真能打?一不小心血本无归,太亏了

于是先搞 \(T4\),很容易发现相邻两数交换位置不影响之后的数

考虑相邻两数换不换,按 \(a.d+a.r \cdot b.d > b.d+b.r \cdot a.d\) 排序即可

排序就就有了亮招的相对顺序

然后考虑一个数选不选与 \(L\) 的限制即可

明显的一个背包,正序转移不方便考虑倒序转移

然后发现一个 \(bug\),最后一招不管 \(L\),可以不按排序顺序,最优当然选剩下的 \(d\) 最大的

也就是说要枚举最后一招,\(O(n^2L)\)

考虑优化,如果把招数按 \(d\) 从大到小排序后枚举最后一招,想想最多枚举到哪

考虑 \(k\) 前面的 \(l\) 的和已经大于 \(100\),意味着枚举 \(k\) 时前 \(k\) 个数至少有一个选不到

如果选了后面的任意一个为结尾,前 \(k\) 个至少有一个选不到,所以不如选前 \(k\) 个优,故不必继续枚举,就成 \(O(nL^2)\) 了

大可把 \(l/2\) 优化

JZOJ 2022.02.10【提高组】模拟总结的更多相关文章

  1. JZOJ 5196. 【NOIP2017提高组模拟7.3】B

    5196. [NOIP2017提高组模拟7.3]B Time Limits: 1000 ms  Memory Limits: 262144 KB  Detailed Limits   Goto Pro ...

  2. JZOJ 5184. 【NOIP2017提高组模拟6.29】Gift

    5184. [NOIP2017提高组模拟6.29]Gift (Standard IO) Time Limits: 1000 ms  Memory Limits: 262144 KB  Detailed ...

  3. JZOJ 5197. 【NOIP2017提高组模拟7.3】C

    5197. [NOIP2017提高组模拟7.3]C Time Limits: 1000 ms  Memory Limits: 262144 KB  Detailed Limits   Goto Pro ...

  4. JZOJ 5195. 【NOIP2017提高组模拟7.3】A

    5195. [NOIP2017提高组模拟7.3]A Time Limits: 1000 ms  Memory Limits: 262144 KB  Detailed Limits   Goto Pro ...

  5. JZOJ 5185. 【NOIP2017提高组模拟6.30】tty's sequence

    5185. [NOIP2017提高组模拟6.30]tty's sequence (Standard IO) Time Limits: 1000 ms  Memory Limits: 262144 KB ...

  6. [jzoj 5770]【2018提高组模拟A组8.6】可爱精灵宝贝 (区间dp)

    传送门 Description Branimirko是一个对可爱精灵宝贝十分痴迷的玩家.最近,他闲得没事组织了一场捉精灵的游戏.游戏在一条街道上举行,街道上一侧有一排房子,从左到右房子标号由1到n. ...

  7. NOIP2017提高组模拟赛 10 (总结)

    NOIP2017提高组模拟赛 10 (总结) 第一题 机密信息 FJ有个很奇怪的习惯,他把他所有的机密信息都存放在一个叫机密盘的磁盘分区里,然而这个机密盘中却没有一个文件,那他是怎么存放信息呢?聪明的 ...

  8. ZROI提高组模拟赛05总结

    ZROI提高组模拟赛05总结 感觉是目前为止最简单的模拟赛了吧 但是依旧不尽人意... T1 有一半的人在30min前就A掉了 而我花了1h11min 就是一个简单的背包,我硬是转化了模型想了好久,生 ...

  9. NOIP2017提高组 模拟赛15(总结)

    NOIP2017提高组 模拟赛15(总结) 第一题 讨厌整除的小明 [题目描述] 小明作为一个数学迷,总会出于数字的一些性质喜欢上某个数字,然而当他喜欢数字k的时候,却十分讨厌那些能够整除k而比k小的 ...

  10. NOIP2017提高组 模拟赛13(总结)

    NOIP2017提高组 模拟赛13(总结) 第一题 函数 [题目描述] [输入格式] 三个整数. 1≤t<10^9+7,2≤l≤r≤5*10^6 [输出格式] 一个整数. [输出样例] 2 2 ...

随机推荐

  1. WeetCode2滑动窗口系列

    系列文章目录和关于我 一丶[无重复字符的最长子串](3. 无重复字符的最长子串 - 力扣(Leetcode)) 思路: 维护一个窗口,窗口中不存在重复的字符,窗口右边界从第一个字符移动到最后,使用一个 ...

  2. day26-过滤器Filter

    Filter过滤器 1.Filter过滤器说明 为什么需要过滤器? 先来看一个例子: 我们在登录网站页面时,需要先进行登录验证. 用户访问的正常的流程应该是: 用户先通过登录页面进行验证,然后才可以访 ...

  3. 【每日一题】【DFS+存已加的值】2022年2月27日-二叉树根节点到叶子节点的所有路径和

    描述给定一个二叉树的根节点root,该树的节点值都在数字0−9 之间,每一条从根节点到叶子节点的路径都可以用一个数字表示.1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点2.叶子节点是 ...

  4. 《MySQL必知必会》之事务、用户权限、数据库维护和性能

    第二十六章 管理事务处理 本章介绍什么是事务处理以及如何利用COMMIT和ROLLBACK语句来管理事务处理 事务处理 并非所有数据库引擎都支持事务处理 常用的InnoDB支持 事务处理可以用来维护数 ...

  5. VSCode编辑器极简使用入门

    VSCode(Visual Studio Code)是一款开源.跨平台.轻量级的代码编辑器,具有非常丰富的插件生态.他本身就是JavaScript + Electron ( /ɪˈlektrɒn/电子 ...

  6. 判断条件为NULL

    在ASCII码表里NULL的二进制位0.所以NULL作为判断条件时,表示为假的意思. ASCII表               二进制                       字符         ...

  7. [OpenCV实战]28 基于OpenCV的GUI库cvui

    目录 1 cvui的使用 1.1 如何在您的应用程序中添加cvui 1.2 基本的"hello world"应用程序 2 更高级的应用 3 代码 4 参考 有很多很棒的GUI库,例 ...

  8. 主题 2 Shell工具和脚本

    主题 2 Shell工具和脚本 Shell 工具和脚本 · the missing semester of your cs education (missing-semester-cn.github. ...

  9. JavaScript 图像压缩

    JavaScript 可以使用类似于 canvas 和 web workers 来实现图像压缩. 使用 canvas,可以将图像绘制到 canvas 上,然后使用 canvas 提供的 toBlob( ...

  10. NET-Core利用etag进行浏览器缓存

    title: .NET Core浏览器缓存方案 date: 2022-12-02 14:17:36 tags: - .NET 缓存介绍及方案 在后端开发中经常会使用缓存来提高接口的响应速度,降低系统的 ...