\(\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. vue阻止向上和向下冒泡

    阻止向下冒泡 <div class="content" @click.self="cancelFunc"></div> 阻止向上冒泡 & ...

  2. 第2-4-9章 规则引擎Drools实战(2)-信用卡申请

    目录 9.2 信用卡申请 9.2.1 计算规则 9.2.2 实现步骤 9.2 信用卡申请 全套代码及资料全部完整提供,点此处下载 本小节我们需要通过Drools规则引擎来根据规则进行申请人的合法性检查 ...

  3. 【离线数仓】Day04-即席查询(Ad Hoc):Presto链接不同数据源查询、Druid建多维表、Kylin使用cube快速查询

    一.Presto 1.简介 概念:大数据量.秒级.分布式SQL查询engine[解析SQL但不是数据库] 架构 不同worker对应不同的数据源(各数据源有对应的connector连接适配器) 优缺点 ...

  4. windows上用vs2017静态编译onnxruntime-gpu CUDA cuDNN TensorRT的坎坷之路

    因为工作业务需求的关系,需编译onnxruntime引入项目中使用,主项目exe是使用的vs2017+qt5.12. onnxruntime就不用介绍是啥了撒,在优化和加速AI机器学习推理和训练这块赫 ...

  5. uniapp安装和使用

    工具安装 开发uni-app需要安装HBuilder X. 下载地址:https://www.dcloud.io/hbuilderx.html. 下载成功后直接解压即可 创建第一个uni-app 点击 ...

  6. 使用Git提交代码

    目录 1.提交前准备工作 2.代码提交步骤 3.从git上面拉代码 4.Git变更集 5.参考资料 1.提交前准备工作 首先去git官网下载git工具(Git GUI Here.Git Bash He ...

  7. 《深度探索C++对象模型》第六章 执行期语意学

    new运算符和delete运算符 运算符new看似是一个简单的运算,比如: int *pi=new int(5); 但是它实际由两个步骤完成: 1.通过适当的new运算符函数实体,配置所需的内存: / ...

  8. CSP/S 2022 游寄

    初赛 HN 初赛分数线好像大 \(32\) 分左右,通过率极高!本人弱弱的拿了 \(60.5\) 分(周围的同学平均分 \(>80\).) Day -1 这一天晚上,我背了背 dijkstra, ...

  9. xcode运行sh权限问题

    Showing Recent Messages Command /bin/sh emitted errors but did not return a nonzero exit code to ind ...

  10. 万字详解,吃透 MongoDB!

    本文已经收录进 JavaGuide(「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识.) 少部分内容参考了 MongoDB 官方文档的描述,在此说明一下. MongoDB ...