陆陆续续做完了……

与或和(单调栈)

这是一道一眼题……

看到位运算,按位考虑贡献。对于每一位,将矩阵中的元素变为“当前元素的这一位是否为\(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的更多相关文章

  1. 【GZOI 2019】特技飞行

    Problem Description 公元 \(9012\) 年,Z 市的航空基地计划举行一场特技飞行表演.表演的场地可以看作一个二维平面直角坐标系,其中横坐标代表着水平位置,纵坐标代表着飞行高度. ...

  2. [LOJ3083] [GXOI2019] 与或和

    题目链接 LOJ:https://loj.ac/problem/3083 洛谷:https://www.luogu.org/problemnew/show/P5300 Solution 逐位考虑,可以 ...

  3. [LOJ3086] [GXOI2019] 逼死强迫症

    题目链接 LOJ:https://loj.ac/problem/3086 洛谷:https://www.luogu.org/problemnew/show/P5303 Solution 显然不考虑\( ...

  4. GXOI&GZOI

    T1 与或和   2s&&512MB   简明题意:求一个矩阵的所有子序列的 \(and\)和 和\(or\)和: 子矩阵的\(and\)和就是所有值\(and\)起来:\(or\)类 ...

  5. GZOI 2017配对统计 树状数组

    题目 https://www.luogu.com.cn/problem/P5677 分析 最开始读题的时候没有读的太懂,以为i是在选定区间内给的,实际上不是,这道题的意思应该是在l和r的区间内找出有多 ...

  6. 「ZJOI Day2」游记

    Day-1 晚上一直在出自己做的模拟赛的T1,真的快要死掉了. 分类讨论几十种情况. 窝还是找了Bluesky大佬一起来验题,她瞬间就A掉了这一道题目...自闭了.. 诶,我还是太弱了. 之前教练组织 ...

  7. JavaScript 高级程序设计(第3版)笔记——chapter5:引用类型

    Chapter5 引用类型 本章内容: l  使用对象 l  创建并操作数组 l  理解基本的JavaScript类型 l  使用基本类型和基本包装类型 l  从技术上讲,JavaScript是一门面 ...

  8. OI暑假集训游记

    莞中OI集训游记 Written BY Jum Leon. I        又是一载夏,本蒟蒻以特长生考入莞中,怀着忐忑的心情到了8月,是集训之际.怀着对算法学习的向往心情被大佬暴虐的一丝恐惧来到了 ...

  9. [solution]JZOJ-5838 旅游路线

    [solution] JZOJ-5838 旅游路线 Time Limits 1000ms,Memory Limits 128MB 题面 Description GZOI队员们到X镇游玩.X镇是一个很特 ...

随机推荐

  1. eclipse为项目设置jdk

    1)在项目上右键选中properties,会进入如下界面 (2)然后点击Add Library,进入设置Library的界面 (3)选中JRE System Library进入下一界面就可以设置jdk ...

  2. linux修改固定IP

    点击虚拟机菜单栏的编辑,选择虚拟网络编辑器 选择Vmnet8 NAT模式,查看子网ip:192.168.233.0 我们的虚拟机网络模式也需要选择NAT模式 打开虚拟机,输入:ip addr 查看当前 ...

  3. mysql 存储过程 REPEAT ... UNTIL ... END REPEAT

    begin   declare  b int;   declare  use_no    varchar(10);   declare  use_name  varchar(400);   decla ...

  4. 2019暑假Java学习笔记(二)

    目录 基础语法(下) 流程控制 if语句 switch语句 while语句和do-while语句 for语句 break关键字 continue关键字 数组 一维数组 二维数组 用户输入操作 练习题: ...

  5. 第09组 Beta冲刺(2/4)

    队名:软工9组 组长博客:https://www.cnblogs.com/cmlei/ 作业博客:https://edu.cnblogs.com/campus/fzu/SoftwareEngineer ...

  6. LDD3源码分析之poll分析

    编译环境:Ubuntu 10.10 内核版本:2.6.32-38-generic-pae LDD3源码路径:examples/scull/pipe.c  examples/scull/main.c 本 ...

  7. PyTorch 实战:计算 Wasserstein 距离

    PyTorch 实战:计算 Wasserstein 距离 2019-09-23 18:42:56 This blog is copied from: https://mp.weixin.qq.com/ ...

  8. python @classmethod和@staticmethod区别

    python 类方法和静态方法区别 python @classmethod和@staticmethod区别 Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢 ...

  9. spring源码的设计模式

    转:https://blog.csdn.net/huyang0304/article/details/82928900 接下来我们只介绍在Spring中常用的设计模式. 1.1.简单工厂模式(Fact ...

  10. 如何在真实串口驱动还未加载的情况下调试uboot?

    1. 先找出真实串口是什么型号 1.1 怎么找?笔者提供两种方案: 方案一: 若当前的板子支持dm,从uboot的dts找串口节点对应的compatible属性 方案二: 从linux内核的dts找串 ...