\(\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. MySQL57 zip安装

    引用:MySQL5.7的.zip文件的配置安装   由于MySQL5.7之后在javaEE中交互的端口发生了变化,而MySQL官网中5.6.5.7版本64位的只有.zip文件,而.zip文件不像直接下 ...

  2. tostring、(string)和 String.valueOf()

    上周遇到一个问题,只怪自己平时没注意这个细节,从数据库取数据在map集合里,取出该值是我用了.tostring的方法,一次在当取出数据为空时代码报java.lang.NullPointerExcept ...

  3. nuxt作为主应用接入qiankun的实践(附代码)

    上半年一直在倒腾qiankun,在使用nuxtjs接入qiankun时遇到了一些坑,记录并分享出来,希望能帮助到大家. 代码地址:nuxtjs-qiankun-demo Nuxtjs接入qiankun ...

  4. 你真的了解 RSA 加密算法吗?

    作者:小傅哥 博客:https://bugstack.cn 源码:https://github.com/fuzhengwei/java-algorithms 沉淀.分享.成长,让自己和他人都能有所收获 ...

  5. SQLMap入门——判断是否存在注入

    假设目标注入点是http://127.0.0.1/sqli-labs-master/Less-1/?id=1,判断其是否存在注入的命令如下: python sqlmap.py -u http://12 ...

  6. BeanShell 后置处理器/前置处理器实现urldecode 解码

    1.使用正则/Json提取器提取需要解码的值 2.在提取的接口中添加后置处理器或在下个调用接口中添加前置处理器 3.编码实现 String token = vars.get("access_ ...

  7. JavaScript:输入语法:prompt与confirm

    prompt prompt有两个参数: 第一个参数会显示在弹窗的输入框的上方: 第二个参数是可选的,会显示在输入框内,是一个初始值: 我们在输入框内输入的任何内容,都会作为返回值,返回给变量resul ...

  8. 【转载】【Word】项目编号应用样式后出现黑框的解决方案

    本文中的宏代码来自: https://www.zhihu.com/question/38985919 Word使用项目编号后,出现黑框,如下图所示: 网上大多数解决方案在重新打开文档后,依然还是有黑框 ...

  9. [机器学习] t-SNE聚类算法实践指南

    ​  转载于比PCA降维更高级--(R/Python)t-SNE聚类算法实践指南-阿里云开发者社区 作者介绍:Saurabh.jaju2 Saurabh是一名数据科学家和软件工程师,熟练分析各种数据集 ...

  10. vue 解决循环引用组件/动态组件/组件未注册报错

    使用动态组件报错 Unknown custom element: - did you register the component correctly? For recursive component ...