【LOJ】#2722. 「NOI2018」情报中心】的更多相关文章

https://loj.ac/problem/2722 题解 考场上想了60分,但是由于自己不知道在怎么zz,我连那个ai<bi都没看到,误以为出题人没给lca不相同的部分分,然后觉得lca不同的部分想出来了要是相出lca相同的不就肝过去了--最后剩下的想法就是--为啥没给lca不同的呢--是我想错了??? 剩了一个小时写暴力好像当时已经精神失常了,算了不想说了 出了考场写了一下60分,细节真是多到让我吐了,我代码能力疯狂下降吗,写了60分就370行了 出题人大毒瘤啊 从头到尾说一下部分分 前2…
「NOI2018」情报中心 题目描述 C 国和D 国近年来战火纷飞. 最近,C 国成功地渗透进入了D 国的一个城市.这个城市可以抽象成一张有$n$ 个节点,节点之间由$n - 1$ 条双向的边连接的无向图,使得任意两个点之间可以互相到达,也就是说这张无向图实际上是一棵树. 经过侦查,C 国情报部部长GGB 惊讶地发现,这座看起来不起眼的城市竟然是D 国的军事中心.因此GGB 决定在这个城市内设立情报机构.情报专家TAC 在侦查后,安排了$m$ 种设立情报机构的方案.这些方案中,第$i$ 种方案是…
题意 LOJ #2721. 「NOI2018」屠龙勇士 题解 首先假设每条龙都可以打死,每次拿到的剑攻击力为 \(ATK\) . 这个需要支持每次插入一个数,查找比一个 \(\le\) 数最大的数(或者找到 \(>\) 一个数的最小数),删除一个数. 这个东西显然是可以用 std :: multiset<long long> 来处理的(手写权值线段树或者平衡树也行). 对于每一条龙我们只能刚好一次秒杀,并且要恰好算血量最后为 \(0\)(一波带走). 然后就转化成求很多个方程: \[ \…
题目链接 loj#2718. 「NOI2018」归程 题解 按照高度做克鲁斯卡尔重构树 那么对于询问倍增找到当前点能到达的高度最小可行点,该点的子树就是能到达的联通快,维护子树中到1节点的最短距离 spfa她死了...同步赛没写的说... 似乎前两题比去年简单些....连蒟蒻我都可做前两题的说 代码 #include<queue> #include<cstdio> #include<cstring> #include<algorithm> inline in…
题目链接 loj#2721. 「NOI2018」屠龙勇士 题解 首先可以列出线性方程组 方程组转化为在模p意义下的同余方程 因为不保证pp 互素,考虑扩展中国剩余定理合并 方程组是带系数的,我们要做的是在%p意义下把系数除过去,(系数为atk[i]) (atk[i],p[i]) 不等于1时无逆元,此时仍可能有解 很显然无解的情况就是 瞎jb猜的,无解的话就是%p[i]意义下atk[i] != 0 ,a[i] = 0 考虑原方程式ai = atk{i] * x + p[i] * y 方程两边同除g…
Loj #2719. 「NOI2018」冒泡排序 题目描述 最近,小 S 对冒泡排序产生了浓厚的兴趣.为了问题简单,小 S 只研究对 *\(1\) 到 \(n\) 的排列*的冒泡排序. 下面是对冒泡排序的算法描述. 输入:一个长度为 n 的排列 p[1...n] 输出:p 排序后的结果. for i = 1 to n do ​ for j = 1 to n - 1 do ​ if(p[j] > p[j + 1]) ​ 交换 p[j] 与 p[j + 1] 的值 冒泡排序的交换次数被定义为交换过程…
链接大合集: loj uoj luogu bzoj 单纯地纪念一下写的第一份5K代码.../躺尸 因为ZJOI都不会所以只好写NOI的题了... 总之字符串题肯定一上来就拼个大字符串跑后缀数组啦! (为了便于说明,放一下样例的sa) #sbape#sgepe #sgepe #smape#sbape#sgepe amgepe#smape#sbape#sgepe ape#sbape#sgepe ape#sgepe bamgepe#smape#sbape#sgepe bape#sgepe cbamge…
题目传送门 传送门 题目大意 (相信大家都知道) 显然要考虑一个排列$p$合法的充要条件. 考虑这样一个构造$p$的过程.设排列$p^{-1}_{i}$满足$p_{p^{-1}_i} = i$. 初始令$q = (1, 2, \cdots, n)$. 依次考虑$i = 1, 2, \cdots, n$. 设$x = p_i$,如果$q^{-1}_x > i$,那么交换$q_x, q_{x - 1}$. 上述算法每次交换的时候会使逆序对增加1. 考虑给出的下界,假设交换的是$i$和$i + 1$.…
把 $Noi2018$ day1t1 想出来还是挺开心的,虽然是一道水题~ 预处理出来 1 号点到其它点的最短路,然后预处理边权从大到小排序后加入前 $i$ 个边的并查集. 这个并查集用可持久化线段树维护可持久化数组来完成. 每次询问时在边集上二分一下,找到对应的并查集,然后找到祖先并输出极小值即可. #include <bits/stdc++.h> #define N 400005 #define ll long long #define setIO(s) freopen(s".i…
题目:https://loj.ac/problem/2721 1.注意别一输入 p[ i ] 就 a[ i ] %= p[ i ] ,因为在 multiset 里找的时候还需要真实值. 2.注意用 multiset .并且,因为要 upper_bound( a[ i ] ) ,而 a[ i ] 是一个 long long 类型的,所以即使 multiset 里装的都是 int 类型的,也得开成 long long 的 multiset . 3.注意除了同余的限制,还有一个是 \( x*c_i >…