首页 > TAG信息列表 > GXOI
[GXOI/GZOI2019]与或和
[GXOI/GZOI2019]与或和 很显然在2进制每一位做出的贡献是可以分别计算的,那么我们考虑单独计算这31位 与运算和或运算的计算过程显然是一模一样的,与运算就是找右多少个全都是1的矩阵 而或运算就是所有的矩阵减去全部都是0的矩阵,所以操作起来是一模一样的 我们看如何实现,首先,我们预[GXOI/GZOI2019]旧词
\(\text{Solution}\) 第一部分参考 \(\text{LNOI2014 LCA}\) 在 \(k=1\) 时完全可行 因为对于每个 \(i\), 根到 \(y\) 的路径之和恰好是 \(dep[lca]\) 但当 \(k>1\) 呢? 此时我们要想办法弄出一个加数的方式,使根到 \(y\) 的路径之和为 \(dep[lca]^k\) 考虑每个点 \(x\) 加上的权值为【题解】[GXOI/GZOI2019]宝牌一大堆
[GXOI/GZOI2019]宝牌一大堆 \(\text{Solution:}\) 从 \(8kb\) 代码改到 \(11kb\) 最后封装到 \(5kb\) ……封装 yyds dwt yyds 学到最大的除了 \(dp\) 应该是调试技巧和封装的重要性了…… 方程可能写的有点奇怪)看看能不能帮到和我一样设计状态的同学) 后面附带了一些注意事项。欢[GXOI/GZOI2019]与或和
嘟嘟嘟 在GX大佬cyh的提议下,我就开了这道题。 看到位运算,就想到每一位单独考虑。 那么对于\(AND\)操作,我们只要找全是1的子矩阵个数。 对于\(OR\)操作,用子矩阵总数-全0子矩阵个数即可。 这样就有一个\(O(n ^ 4 logN)\)(\(N\)是值域)的做法了,可以拿到50分。 然后我就没想出来。 现在题解:[GXOI/GZOI2019]旅行者
调这个题调了两个月,被自己蠢哭 题意: 给一个有向图,一组关键点,求关键点之间的最短的距离 Solution: 这个题目有两种做法,分别是 $nlogn$ 和 $nlog^2n$ 的 首先说 $nlogn$ 的官方做法,我们考虑多源迪杰斯特拉 正图上从 k 个关键点出发跑 $dijkstra$ ,记某个点离最近的关GXOI/GZOI2019 旅行者
题目链接:戳我 这是同学出的题,真心神仙qwq 我们进行二进制分组,因为如果答案是\(k_i\)和\(k_j\)之间的距离的话,他们的编号必定在某一位上不一样。 所以这样子做是对的。跑dij的次数降低到2*log次。 不过最好还是不要像我一样懒,分组之后重新加边,不加O2会慢死的........ #include<iostr[GXOI/GZOI2019]旧词
相关链接(雾:[LNOI2014]LCA 实际上这题就是加了一个幂。。原题爆破比赛 原题:当$k=1$时 暴力:求LCA再求深度。。然后观察一下求LCA的方法。。最暴力的方法就是把根节点到节点$i$的路径上的点都打上标记,然后由节点$y$往上,直到一个有标记的点为止。。 然而这题并不需要求LCA的序号,只需要[GXOI/GZOI2019]与或和(位运算,单调栈)
题目链接懒得放了。 题目大意懒得写了。 省选原题哪有找不到的…… 说实话,其实这题是个大水题,被我十秒钟内口胡出来了。 首先位运算除了拆位还能干啥?以下以与为例,或是差不多的。 我们考虑有多少个子矩阵会对这一位答案产生贡献,其实就是全 $1$ 的子矩阵。 问题转化为计算全 $1$ 子[GXOI/GZOI2019]旅行者
就我感觉这道题很神仙吗/kel 仔细想想应该也是一种适用范围挺广的做法。 考虑我们可以通过dijkstra在O(nlogn)求出一个点集到另外一个点集的最短路。 那么我们可以通过一些划分点集的方式使得每一对点都被计算一次。 考虑按照二进制划分。 两个不同的数至少有一个二进制位不同。 按题解 P5301 【[GXOI/GZOI2019]宝牌一大堆】
这道题除了非常恶心以外也没有什么非常让人恶心的地方 当然一定要说有的话还是有的,就是这题和咱 ZJOI 的 mahjong 真的是好像的说~ 于是就想说这道题出题人应该被 锕 掉 noteskey 整体的思路就是特判国士无双和七对子,然后 dp 搞普通的胡牌 dp 状态设计和楼上大佬说的一样,就是用一个[GXOI|GZOI2019]旧词
题解 首先当\(k=1\)的时候肥肠简单 就是按照\(x\)从小到大排序 每处理到一个\(x\),就把\(1\to x\)的路径上的点都+1 然后查询\(y\)的时候就查询\(1\to y\)的点权和 那么\(k>1\)的时候也一样 对于深度为\(i\)的节点,给ta加上\(i^k-(i-1)^k\)即可 最后查询的时候查询点u的贡献就LOJ#3087. 「GXOI / GZOI2019」旅行者(最短路)
题面 传送门 题解 以所有的感兴趣的城市为起点,我们正着和反着各跑一边多源最短路。记\(c_{0/1,i}\)分别表示正图/反图中离\(i\)最近的起点,那么对于每条边\((u,v,w)\),如果\(c_{0,u}\neq c_{1,v}\),那么我们就用\(d_{0,u}+d_{1,v}+w\)更新答案 //minamoto #include<bits/stdc++.h> #de