JZOJ 2022.02.10【提高组】模拟总结
\(\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【提高组】模拟总结的更多相关文章
- JZOJ 5196. 【NOIP2017提高组模拟7.3】B
5196. [NOIP2017提高组模拟7.3]B Time Limits: 1000 ms Memory Limits: 262144 KB Detailed Limits Goto Pro ...
- JZOJ 5184. 【NOIP2017提高组模拟6.29】Gift
5184. [NOIP2017提高组模拟6.29]Gift (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB Detailed ...
- JZOJ 5197. 【NOIP2017提高组模拟7.3】C
5197. [NOIP2017提高组模拟7.3]C Time Limits: 1000 ms Memory Limits: 262144 KB Detailed Limits Goto Pro ...
- JZOJ 5195. 【NOIP2017提高组模拟7.3】A
5195. [NOIP2017提高组模拟7.3]A Time Limits: 1000 ms Memory Limits: 262144 KB Detailed Limits Goto Pro ...
- 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 ...
- [jzoj 5770]【2018提高组模拟A组8.6】可爱精灵宝贝 (区间dp)
传送门 Description Branimirko是一个对可爱精灵宝贝十分痴迷的玩家.最近,他闲得没事组织了一场捉精灵的游戏.游戏在一条街道上举行,街道上一侧有一排房子,从左到右房子标号由1到n. ...
- NOIP2017提高组模拟赛 10 (总结)
NOIP2017提高组模拟赛 10 (总结) 第一题 机密信息 FJ有个很奇怪的习惯,他把他所有的机密信息都存放在一个叫机密盘的磁盘分区里,然而这个机密盘中却没有一个文件,那他是怎么存放信息呢?聪明的 ...
- ZROI提高组模拟赛05总结
ZROI提高组模拟赛05总结 感觉是目前为止最简单的模拟赛了吧 但是依旧不尽人意... T1 有一半的人在30min前就A掉了 而我花了1h11min 就是一个简单的背包,我硬是转化了模型想了好久,生 ...
- NOIP2017提高组 模拟赛15(总结)
NOIP2017提高组 模拟赛15(总结) 第一题 讨厌整除的小明 [题目描述] 小明作为一个数学迷,总会出于数字的一些性质喜欢上某个数字,然而当他喜欢数字k的时候,却十分讨厌那些能够整除k而比k小的 ...
- NOIP2017提高组 模拟赛13(总结)
NOIP2017提高组 模拟赛13(总结) 第一题 函数 [题目描述] [输入格式] 三个整数. 1≤t<10^9+7,2≤l≤r≤5*10^6 [输出格式] 一个整数. [输出样例] 2 2 ...
随机推荐
- Spring02:注解IOC、DBUtils单表CRUD、与Junit整合
今日内容:基于注解的IOC及IOC的案例 Spring中IOC的常用注解 案例-使用xml方式和注解方式实现单表的CRUD操作 持久层技术选型:DBUtils 改造基于注解的IOC案例,使用纯注解的方 ...
- STM32标准库中GPIO_ReadInputData与GPIO_ReadInputDataBit的区别
GPIO_ReadInputData读的是GPIOx的整个IDR寄存器的数据,返回一个十六位数,对应IDR寄存器的十六位.反映GPIOx所有端口的电平状态,所以参数只用传入GPIOx. uint16_ ...
- 学习ASP.NET Core Blazor编程系列十七——文件上传(上)
学习ASP.NET Core Blazor编程系列文章之目录 学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应 ...
- 12、synchronized和Lock的使用
转载自 1.多并发案例: 一个车站有三个窗口同时卖30张票,每个窗口都有40个人在排队买票,在多线程情况下,不加锁,线程不安全,导致卖票不准确 package com.example.Lock; /* ...
- M.2 SSD固态硬盘上安装windows问题
近来M2硬盘大降价,笔记就趁便宜买了一个2T的M.2固态硬盘,插在笔记本上,接下来安装win11,本想以前安装多次,也是老手了,没想到遇到很多问题,一度陷入僵局,不过最终还是安装成功了,下面记录下安装 ...
- S2-012 CVE-2013-1965
漏洞名称 S2-012(CVE-2013-1965) 远程代码执行 利用条件 Struts Showcase App 2.0.0 - Struts Showcase App 2.3.14.2 影响版本 ...
- [cocos2d-x]关于屏幕适配
第一步:理解屏幕分辨率和设计分辨率 通过这个图可以很容易理解,设计分辨率就是你能够进行纹理绘制的大小,而屏幕分辨率就是你的画框大小.而两者之间的适配,通过cocos2dx自带的几种适配方案来进行适配, ...
- Matplotlib 绘制折线图
Matplotlib matplotlib: 最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建 绘制折线图 绘制两小时的温度变化 from matpl ...
- Java基础学习笔记-数据类型、数制
数据类型,跟JS感觉差异不是很大,但是有个String不是很一样的样子 数据类型分为 基本数据类型和复合数据类型 基本数据类型分为下面三种 数值类型 1.整数类型:byte,short,int,lon ...
- 上传图片文件并立即显示到页面使用 javascript实现鼠标拖动画矩形框以及实现固定区域内随意拖动
首先,你要设计好鼠标事件处理方法,主要是鼠标左键点击,左键释放,还有鼠标移动方法其次,要了解容什么方式,画一个矩形,设计一个方法:DrawRectgle(左上角,右下角),并且要确定当调用这个方法时, ...