首页 > TAG信息列表 > NOI2018

LOJ #2721. 「NOI2018」屠龙勇士

题目叙述 有点长,大概就是一个扩展CRT的模板。 题解 相当于求 \(b_ix\equiv a_i\pmod {p_i}\) 的解了。 考虑先用扩展 CRT 求 \(x\mod p_i\) 是多少。 然后合并即可。 写的时候注意扩展欧几里得要边取模边做。 另外如果想写得简单一些,可以考虑直接套上去,不先把 \(x\mod p_i\) 取值

LOJ #2718. 「NOI2018」归程

题目叙述 给定 \(n\) 个点 \(m\) 条边的无向图,每条边有一个长度和一个高度,一个人坐车能走过所有高度 \(>p\) 的边,从 \(v\) 节点出发,要走到 \(1\) 号节点,坐车走不了的就得步行。求最小步行距离,多次询问。 题解 对 1 跑单源最短路。在Kruskal重构树上走能够经过的节点是一个子树。直

P4769 [NOI2018] 冒泡排序

题意 定义一个排列是好的,当且仅当对它冒泡排序时交换次数是下界: \[\dfrac{1}{2}\sum_{i=1}^n|p_i-i| \]给定一个长度为 \(n\) 的排列 \(p\),求在所有的长度为 \(n\) 的排列中有多少字典序大于 \(p\) 的好的排列。 Solution 这是上课 \(\texttt{M}\color{red}{\texttt{r_Spade}}\)

P4768 [NOI2018] 归程

题目大意 \(n(n\le2\cdot10^5)\) 个点, \(m(m\le4\cdot10^5)\) 条边的无向图,每条边有长度 \(l(l\le10^4)\) ,海拔 \(a(a\le10^9)\) , \(q(q\le 4\cdot10^5)\) 次询问,每次从节点 \(v\) 出发,可以乘车经过任意连续一段海拔 \(> p\) 的边,之后便只能步行,求到达节点 \(1\) 所需的最短步行里

NOI2018题解

D1T1 洛谷题目传送门 题目描述 给定一个n个点m条边的无向图,每条边有高度和长度,Q次询问,每次给定起点,以及限制高度,求从起点能通过高度大于限制高度的边到达的点中,到1号点最短路的最小值 强制在线 65pts 不强制在线 把边权和询问的权值都排序,用并查集维护连通块内到1号点距离最小的点

[NOI2018] 归程,Kruskal 重构树

给出一张点数为 \(n\),边数为 \(m\) 的无向连通图,每个边 \(e\) 的属性是一个二元组 \((l,a)\)。 接下来给出 \(q\) 次询问,每次给出一个出发点 \(v\) 以及约束 \(p\),求出从 \(v\) 至 \(1\) 号节点的最小花费。 花费的计算是这样的:将 \(p(v,1)\) 分为两段 \(p(v,u)\),\(p(u,1)\)。 \(p

[NOI2018] 屠龙勇士

前言 属实是板题了,竟然没做过,本想rush一波结果怎么都过不了样例,然后去模板那里测发现也过不了样例,看半天原来是板子写挂了,相当尴尬。 题目 洛谷 讲解 由于 ≡ 打着太麻烦,所以下文直接用 = 了。 可以发现每头龙对应的剑是唯一确定的,所以用 \(\operatorname{multiset}\) 直接求出所

P4769 [NOI2018] 冒泡排序

闲话:之前在做这道题的时候猜了一个结论,最长上升子序列的个数不能超过二,当时证着证着觉得假了。。。 首先一个序列如果能满足下界,那么其中的每一个元素必然是只向其目标方向移动。又由于,一个数的移动情况与其左边比其大的数的个数和右边比其小的数的个数决定,而且必然是先向左再向

【题解】Luogu-P4774 [NOI2018] 屠龙勇士

与恶龙缠斗过久,自身亦成为恶龙。凝视深渊过久,深渊将回以凝视。 ​ ——尼采《善恶的彼岸》 P4774 [NOI2018] 屠龙勇士 \(\text{Description}\) 玩家需要按照编号 \(1 \to n\) 顺序杀掉 \(n\) 条巨龙,每条巨龙拥有一个初始的生命值 \(b_i\)。同时每条巨

P4774 [NOI2018] 屠龙勇士 - 数论、中国剩余定理

题意 给出 \(n\) 个线性同余方程构成的方程组 \(\begin{cases} a_1x\equiv b_1 \pmod{p_1} \\ a_2x\equiv b_2 \pmod{p_2} \\ \dots \\ a_nx\equiv b_n \pmod{p_n} \end{cases}\) 问其大于等于某个数的最小解,如果无解输出 \(-1\)。 题解 首先考虑某个线性同余方程 \(a_ix\equiv b_

[NOI2018] 你的名字 做题心得

目录思维过程总结代码 重新做一遍,感觉脑子清楚多了 思维过程 首先我们不考虑区间限制咋做(很常见套路,先不考虑区间限制),换句话说我们要面对整个串 \(S\)。 一个常见思考方式:数本质不同串数,对于SAM上每个节点单独考虑 那我们把 \(T\) 的 SAM 搞出来,考虑每个节点。首先有一个显然的性

「NOI2018」 你的名字

怕是以后在也不能做非思维题了,要不然都想不出来啥了 其实早知道是线段树合并,然后拍上一个维护 \(endpos\) 就开始坐以待毙了 Description 给定 \(S\) 和若干个询问,每个询问是 \(T,l,r\) 的形式,求 \(T\) 有多少个子串在 \(S[l\dots r]\) 中没有出现过 \(|S|\le 5\times 10^5,\sum |

洛谷P4770 [NOI2018]你的名字 后缀自动机+线段树合并

洛谷P4770 [NOI2018]你的名字 题意 给定一个字符串\(S\),有\(Q\)次询问,每次询问给定一个区间\([l,r]\)和一个字符串\(T\),问\(T\)中有多少本质不同的子串且不是\(S[l;r]\)的子串。 \(|S|\le 5\cdot 10^5,Q\le 10^5,\sum|T| \le 10^6\)。 分析 对\(S\)建后缀自动机,用线段树合并维护\(

loj 2720 [NOI2018] 你的名字

loj 2720 [NOI2018] 你的名字 https://loj.ac/problem/2720 有一个串 \(S\) , \(Q\) 次询问,每次给出一个串 \(T\) ,和 \(l,r\) . 求 \(T\) 中有多少非空本质不同子串没有在 \(S[l \cdots r]\) 中出现过 \(|S| \le 5 \times 10^5, \sum |T| \le 10^6,1 \le l \le r \le |S|\) Tuto

[NOI2018] 你的名字

https://www.luogu.com.cn/problem/P4770 题意 给定字符串\(S\),多次询问,每次给出\(l,r,T\)询问不在\(S\)的\([l,r]\)区间出现过的\(T\)的本质不同的子串 前68分满足\(l=1,r=n\) 题解 先考虑前68分,正难则反,即求出\(T\)在\(S\)中出现的本质不同的子串 我们定义\(a[i]\)为\(T\)长

NOI2018

归程 Luogu LOJ UOJ BZOJ 不难发现一定是先开车走一段路直到下条边海拔不超过水位,然后下车沿最短路走到\(1\)号点。 按海拔降序建出Kruskal重构树,对于一次询问,找到\(v\)的祖先中深度最低的海拔高于水位低的点\(u\),那么\(u\)的子树中的叶子节点就是\(v\)可以开车到的点。 预处理每

NOI2018情报中心

题意 给定\(n\)个点的带边权树,\(m\)条代价路径,令两条路径\((u_1,v_1,w_1)(u_)(u_2,v_2,w_2)\),\(val=\sum\limits_{(u,v)\in dis(u_1,v_1)~or~(u,v)\in dis(u_2,v_2)}val(u,v)-w_1-w_2\)。求\(max_{i,j,i\neq j}\{val_{i,j}\}\)。 做法 令\(x\)到根的边权和为\(len_x\) lca不同

「NOI2018」冒泡排序(动态规划+组合计数+树状数组)

Address LOJ#2719 Luogu#4769 BZOJ#5416 UOJ#394 Solution 显然合法的排列不能出现长度 \(\geq 3\) 的下降子序列。 证明:如果出现了 \(i<j<k\) 且 \(p_i>p_j>p_k\),那么 \(p_i\) 肯定要和 \(p_j\) 交换一次,\(p_j\) 肯定也要和 \(p_k\) 交换一次。这样 \(p_j\) 向前向后各交换了一次

P4770 [NOI2018]你的名字

$SAM $ + 线段树合并 先对 \(S\) 建 \(SAM\) ;然后对于每一个串询问串 \(T\) ,首先在 \(S\) 的 \(SAM\) 上跑出 \(T\) 的每个位置的最长匹配长度 \(f[i]\) ,即 \(T[i-f[i]+1,i]\) 是与 \(S\) 中的某个子串是匹配的且 \(f[i]\) 是最大的。 然后我们再对 \(T\) 建后缀自动机;对于一个点

luoguP4774 [NOI2018]屠龙勇士

题意 考虑杀每只龙\(i\)时候用的剑是一定的,我们可以用multiset模拟一遍得到,设为\(b_i\)。 发现我们要求一个\(x\)满足对每个\(i\)有:\(b_i*x\equiv a_i\pmod{p_i}\) 这很像扩展中国剩余定理,但是系数不是1,于是考虑化简。 假设前\(i-1\)个方程的答案为\(res\),模数的\(lcm\)为\(M\)。

[题解]NOI2018 归程

传送门 咕了好多天了,先是打了离线暴力,后来学克鲁斯卡尔重构树,然后又咕了好久才打完 题目描述 一张\(n\)个点,\(m\)条边的无向图,每条边有一个长度\(l\)和一个海拔\(a\),每天会有一个水位线,\(a\)小于等于水位线的都会被淹没 \(Q\)个询问: 询问\(u,p\):问从\(u\)开始走没被淹没的边所能到

[NOI2018]归程

[NOI2018]归程 这题我只会离线做法..在线做法的克鲁斯卡尔重构树我虽然会但是...我不会倍增...所以就比较困难,于是暂时先只写了离线做法. 这个题其实是一个动态的图上的最短路问题. 从\(1\)号点开始跑一遍 Dijkstra,求出到每个节点的最短路 然后问题就转化成了在开车能到达的点里

P4774 [NOI2018]屠龙勇士(exCRT,multiset)

P4774 [NOI2018]屠龙勇士 本题做题思路参考 @shadowice1984的题解 简要题意 有nnn条巨龙和mm

【NOI2018】你的名字

题面 https://www.luogu.org/problem/P4770 题解 // luogu-judger-enable-o2#include<cstdio>#include<iostream>#include<cstring>#include<vector>#define ri register int#define LL long long#define nlogn 60500000#define M 1000050using namespac

Luogu P5469 [NOI2018]机器人 (DP、多项式)

不用FFT的多项式(大雾) 题目链接: https://www.luogu.org/problemnew/show/P5469 (这题在洛谷都成绿题了海星) 题解: 首先我们考虑,一个序列位置最右边的最大值可以走遍整个序列,并且其余任何点都不能跨过这个位置。 所以我们可以区间dp, \(dp[l][r][x]\)表示区间\([l,r]\)最大值不超