九省联考 2018 Day 1 复现
前言
今年省选还有 15 天。每天针对性刷题学知识点有点枯燥,想到真题还没刷,就对着 pdf 做了一遍。
A. 一双木棋
去年省选得了 25,应该是 \(n=2,m=2\) 的贪心和 \(m=1\) 的递推。
差不多暑假的时候把 DP 做法弄出来了。
然后 WC2019 试机题的传统题是这道题。当时写+调一共 1h20min 1A 了。
这会想半天写不出来……一直在想 dp 怎么转移。
实际上轮廓线是状态啊!就是 dp 数组的下标作为状态,然后针对这个转移,这才是 dp 的本质。
此外,我好像只在这个题里见过“最优策略”,就是指会使后面状态尽可能对自己优。所以应该从后往前转移,也就是从前往后记忆化搜索。
码量 1kb 左右。
今年最简单的题 HB 能有多少人 A 掉呢
—— 匿名用户《如何评价NOI2018九省联合省选?》
B. IIIDX
写了个贪心吧,还是比较好想的。先排个序,然后构造出这棵多叉树
分配给下标最小的子树的数一定最大。而为了保证这个最大,它们一定是连续的最大值。即如果子树大小为 \(sz\),那么分配给它 \(a_{n-sz+1}\sim a_n\) 会使这个根上的数最优。
由此可以推出根上的数是子树中最小的。然后递归贪心就可以了。(说不定能根据推论搞出正解
C. 秘密袭击
前 15 分傻瓜 \(O(n\cdot 2^n)\) 枚举。
链的情况 \(O(n^2\log n)\) 主席树搞定。
但是注意是要求出第 \(k\) 大不是小,不然样例都过不了。
主席树找左儿子的时候会减去一个值,如果是表达式的话要注意打括号(带减法的)。
总结
数据分治一定要检查每个 namespace 的正确性,一个错误考虑会不会在多个 namespace 里同时出现。检查完之后不要把分治时的 if 注释删了。
如果发现一直没有思路,就先 return; 吧。
对问题要考虑本质而不是表象。尤其是状态。
5 分也是分。
多组数据一定要清空(虽然这套没有)。
多读题多读题。
九省联考 2018 Day 1 复现的更多相关文章
- [九省联考2018]秘密袭击coat
[九省联考2018]秘密袭击coat 研究半天题解啊... 全网几乎唯一的官方做法的题解:链接 别的都是暴力.... 要是n=3333暴力就完了. 一.问题转化 每个联通块第k大的数,直观统计的话,会 ...
- 【BZOJ5250】[九省联考2018]秘密袭击(动态规划)
[BZOJ5250][九省联考2018]秘密袭击(动态规划) 题面 BZOJ 洛谷 给定一棵树,求其所有联通块的权值第\(k\)大的和. 题解 整个\(O(nk(n-k))\)的暴力剪剪枝就给过了.. ...
- 「九省联考 2018」IIIDX 解题报告
「九省联考 2018」IIIDX 这什么鬼题,送的55分要拿稳,实测有60? 考虑把数值从大到小摆好,每个位置\(i\)维护一个\(f_i\),表示\(i\)左边比它大的(包括自己)还有几个数可以选 ...
- [BZOJ 5252][LOJ 2478][九省联考2018] 林克卡特树
[BZOJ 5252][LOJ 2478][九省联考2018] 林克卡特树 题意 给定一个 \(n\) 个点边带权的无根树, 要求切断其中恰好 \(k\) 条边再连 \(k\) 条边权为 \(0\) ...
- LOJ #2473. 「九省联考 2018」秘密袭击
#2473. 「九省联考 2018」秘密袭击 链接 分析: 首先枚举一个权值W,计算这个多少个连通块中,第k大的数是这个权值. $f[i][j]$表示到第i个节点,有j个大于W数的连通块的个数.然后背 ...
- 洛谷 P4363 [九省联考2018]一双木棋chess 解题报告
P4363 [九省联考2018]一双木棋chess 题目描述 菲菲和牛牛在一块\(n\)行\(m\)列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手. 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落 ...
- 【BZOJ5248】【九省联考2018】一双木棋(搜索,哈希)
[BZOJ5248][九省联考2018]一双木棋(搜索,哈希) 题面 BZOJ Description 菲菲和牛牛在一块n行m列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手.棋局开始时,棋盘上没有任何 ...
- [luogu] P4364 [九省联考2018]IIIDX(贪心)
P4364 [九省联考2018]IIIDX 题目背景 Osu 听过没?那是Konano 最喜欢的一款音乐游戏,而他的梦想就是有一天自己也能做个独特酷炫的音乐游戏.现在,他在世界知名游戏公司KONMAI ...
- Loj #2479. 「九省联考 2018」制胡窜
Loj #2479. 「九省联考 2018」制胡窜 题目描述 对于一个字符串 \(S\),我们定义 \(|S|\) 表示 \(S\) 的长度. 接着,我们定义 \(S_i\) 表示 \(S\) 中第 ...
随机推荐
- [Selenium] 最大化或自定义浏览器的大小
driver.manage().window().maximize(); //将浏览器设置为最大化的状态 driver.manage().window().setSize(new Dimens ...
- Zookeeper 源码(三)Zookeeper 客户端源码
Zookeeper 源码(三)Zookeeper 客户端源码 Zookeeper 客户端主要有以下几个重要的组件.客户端会话创建可以分为三个阶段:一是初始化阶段.二是会话创建阶段.三是响应处理阶段. ...
- 使用windows server2012时FileZilla客户端连接时报150 Opening data channel for directory listing of "/" 响应:425 Can't open data connection
425 Can't open data connection 和 读取目录列表失败 问题解决 这个问题主要是由于使用Passive Mode模式造成的,解决这个问题很简单: 1.在ftp服务软件中设置 ...
- SpringBoot2.0WebFlux响应式编程知识总结
- break,continue以及pass的使用
1.break是提前结束循环 for i in range(1,100): if i%2 == 0: print("wrong") break#直接结束循环,并且不打印下面的pri ...
- HRBUST1311 火影忍者之~忍者村 2017-03-06 16:06 106人阅读 评论(0) 收藏
火影忍者之-忍者村 忍者村是忍者聚居的村子,相等于国家的军事力量.绝大部分村民都是忍者,有一些忍者会在村内开设书店.餐厅等,不过大部分忍者都是为村子执行任务的忍者,以赚取酬劳,并于战时为国家出战. ...
- Android-开关机的广播
在上一篇博客Android-sdcard广播的接收处理,中介绍了,如何订阅接收者,去接收系统发送的Sdcard状态改变广播,而这篇博客是订阅接收者,去接收开机/关机的广播 Android操作系统在开机 ...
- Android-sdcard广播的接收处理
有时候Android手机在开机成功后的那几秒会在状态栏通知,Sdcard开始扫描,Sdcard扫描完成,等信息 当Sdcard的状态发生改变后,系统会自动的发出广播 Sdcard的状态: 1.moun ...
- XML--将XML中数据提取出转换成表
DECLARE @xml XMLSET @xml='<Students> <Student id="1001"> <name&g ...
- docker怎么导出导入镜像
https://blog.csdn.net/dest_dest/article/details/80612231 把某个docker镜像保存到本地文件,命令如下docker save -o 镜像名.t ...
