GZOI/GXOI2019
陆陆续续做完了……
与或和(单调栈)
这是一道一眼题……
看到位运算,按位考虑贡献。对于每一位,将矩阵中的元素变为“当前元素的这一位是否为\(1\)”,那么原矩阵变为\(01\)矩阵。在\(01\)矩阵中能够对\(AND\)产生贡献的是全\(1\)的矩阵,能够对\(OR\)产生贡献的是存在\(1\)的矩阵,那么我们需要求全\(1\)和全\(0\)矩阵,单调栈做一下就可以了。
宝牌一大堆(DP)
这是一道暴力题……
国士无双可以直接判,七对子用贪心判一下,对于\(3 \times 4 + 2\)的结构,对于每一种花色DP:设\(f_{i,j,k,l,m,n}\)表示考虑第\(i\)种花色的第\(j\)种牌,选了\(k\)个面子和杠子、\(l\)个对子、\(m\)个\((j-1,j,j+1)\)的顺子、\(n\)个\((j,j+1,j+2)\)的顺子的最大达成分数。转移枚举\(j+1\)的数量、\((j+1,j+2,j+3)\)的数量,剩下的做对子/刻子/杠子。对于字牌也这样DP一下,只是不需要考虑顺子。
最后合并的时候枚举一下每一种花色选了多少对子、面子和杠子然后合并就可以了。
特技飞行(贪心、扫描线)
这是一道强行二合一……
首先我们求能够被嘉宾看到的特技数量。因为特技的位置和嘉宾的视野范围是固定的,所以最开始用一个set维护出所有的特技的位置,然后曼哈顿距离转切比雪夫距离之后就是要求每一个点是否被任意一个正方形覆盖,离散化+扫描线即可。这一段相对细节较多。
然后我们要求最大和最小的特技分数。注意到特技分数和选择某一种特技的次数呈正相关,那么我们只需要求出“对向交换”次数最多和最少的方案数,就可以得到分数最小和最大的方案数。“对向交换”次数最多的显然是所有交点都使用“对向交换”。
“对向交换”最少的情况考虑:对于每一个飞机,如果它在\(x_{st}\)处的纵坐标排名为\(i\),在不使用“对向交换”到达\(x_{ed}\)时的纵坐标排名为\(j\),那么连边\((i,j)\)。我们可以得到一个\(N\)个点、\(N\)条边、由若干个环构成的有向图,而我们最终的目标是让这个图变为\(N\)个自环。而每一次“对向交换”可以交换两个点最终的纵坐标排名,也就是交换两条边的出边,所以对于一个长度为\(len\)的环需要\(len - 1\)次交换,所以最小总次数=$\sum len - 1 = N - $环的个数。
逼死强迫症(矩阵快速幂)
这是一道模板题……
设\(f_{i,0/1/2}\)表示填满了前\(i\)列、放了\(0/1/2\)个\(1 \times 1\)的方块的方案数。转移只需要考虑放\(1\)的方案,其他和斐波那契数列没有不同。注意两个\(1 \times 1\)的方块不能放在一起。
矩阵大小大概是\(5 \times 5\)
旅行者(最短路)
这是一道简单题……
一种比较直接的思路是:正着、反着跑两遍从关键点到其他所有点的最短路和次短路长度,然后对于每一条边\(x \rightarrow y\)考虑贡献答案,如果从关键点到\(x\)的最短路对应的点和从\(y\)到关键点的最短路对应的点是同一个就用一条最短路和一条次短路更新。
但是实际上如果某一条路径是答案,那么在这条路上一定会存在一条边\(x \rightarrow y\),使得从关键点到\(x\)的最短路对应的点和从\(y\)到关键点的最短路对应的点是不同的。所以可以直接记录最短路从哪里来,也是正确的。
旧词(差分、树链剖分)
这是一道大家都应该见过的数据结构题……
没有思路的建议先去做LNOI2014 LCA
然后可以发现这就是上面那道题的\(k\)次方版本。那么对于点\(x\),记录它的权值为\(dep_x^k - (dep_x - 1)^k\),那么点\(x\)对点\(y\)的贡献就是\(LCA(x,y)\)及其祖先节点的权值之和。仍然用树链剖分+线段树维护链上权值和即可。
GZOI/GXOI2019的更多相关文章
- 【GZOI 2019】特技飞行
Problem Description 公元 \(9012\) 年,Z 市的航空基地计划举行一场特技飞行表演.表演的场地可以看作一个二维平面直角坐标系,其中横坐标代表着水平位置,纵坐标代表着飞行高度. ...
- [LOJ3083] [GXOI2019] 与或和
题目链接 LOJ:https://loj.ac/problem/3083 洛谷:https://www.luogu.org/problemnew/show/P5300 Solution 逐位考虑,可以 ...
- [LOJ3086] [GXOI2019] 逼死强迫症
题目链接 LOJ:https://loj.ac/problem/3086 洛谷:https://www.luogu.org/problemnew/show/P5303 Solution 显然不考虑\( ...
- GXOI&GZOI
T1 与或和 2s&&512MB 简明题意:求一个矩阵的所有子序列的 \(and\)和 和\(or\)和: 子矩阵的\(and\)和就是所有值\(and\)起来:\(or\)类 ...
- GZOI 2017配对统计 树状数组
题目 https://www.luogu.com.cn/problem/P5677 分析 最开始读题的时候没有读的太懂,以为i是在选定区间内给的,实际上不是,这道题的意思应该是在l和r的区间内找出有多 ...
- 「ZJOI Day2」游记
Day-1 晚上一直在出自己做的模拟赛的T1,真的快要死掉了. 分类讨论几十种情况. 窝还是找了Bluesky大佬一起来验题,她瞬间就A掉了这一道题目...自闭了.. 诶,我还是太弱了. 之前教练组织 ...
- JavaScript 高级程序设计(第3版)笔记——chapter5:引用类型
Chapter5 引用类型 本章内容: l 使用对象 l 创建并操作数组 l 理解基本的JavaScript类型 l 使用基本类型和基本包装类型 l 从技术上讲,JavaScript是一门面 ...
- OI暑假集训游记
莞中OI集训游记 Written BY Jum Leon. I 又是一载夏,本蒟蒻以特长生考入莞中,怀着忐忑的心情到了8月,是集训之际.怀着对算法学习的向往心情被大佬暴虐的一丝恐惧来到了 ...
- [solution]JZOJ-5838 旅游路线
[solution] JZOJ-5838 旅游路线 Time Limits 1000ms,Memory Limits 128MB 题面 Description GZOI队员们到X镇游玩.X镇是一个很特 ...
随机推荐
- nbbnbnbnbnb
1.本章学习总结(2分) 1.1 学习内容总结 结构体的定义与赋值 结构类型定义的一般形式为: struct 结构名 { 类型名 结构成员1: 类型名 结构成员2: ... 类型名 结构成员3: }; ...
- linux(deepin) 下隐藏firefox标题栏
1. 右上角菜单 -> 定制 -> 左下角 "标题栏" 取消打钩 2. 如果上面无法解决,在firefox的启动前插入一个环境变量,具体修改 /usr/share/ap ...
- 错误: 找不到或无法加载主类 Welcome.java
问题原因: 不需要带.java
- Css3美化【让你的网页独一无二!】
一.span标签:能让某几个文字或者某个词语凸显出来 <p> 今天是11月份的<span>第一天</span>,地铁卡不打折了 </ ...
- shell 杀死80端口的所有进程
netstat -lnp|grep |grep -v grep |awk
- manjaro系统的回滚操作
作为linux系统的爱好者,自从使用linux后,就喜欢追求新的软件,连系统都换成了滚动升级的版本.manjaro基于arch linux,同时也是kde的支持系统,升级非常频繁.使用了几年,很少碰到 ...
- Server concepts 详解
server status 是由 vm_state和task_state 计算出来的,vm_state是虚机当前的稳定状态(例如Active, Error),task_state是虚机当前的瞬间状态( ...
- win7下查看进程端口
一. 查看所有进程占用的端口 在开始-运行-cmd,输入:netstat –ano 可以查看所有进程 二.查看占用指定端口的程序 当你在用tomcat发布程序时,经常会遇到端口被占用的情况,我们想知道 ...
- 在Linux下运行引入了外部jar包的java程序
如图:H.java里引入了commons-io-2.2.jar 代码如下: import org.apache.commons.io.IOUtils; public class H{ public s ...
- matlab-数组取值
一起来学matlab-数组取值 觉得有用的话,欢迎一起讨论相互学习~Follow Me MATLAB中的字符串符号 :冒号 s1=['I am sad';'you are ';'interest'] ...