【OJ】LOJ
文章平均质量分 73
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【LOJ3325】「SNOI2020」区间和
题目链接点击打开链接题目解法由于修改操作是区间 chkmax ,不难想到用 SegmentTreeBeats 来维护序列。接下来,我们便只需要考虑如何处理对区间最小值的区间加操作了。参考最大子段和的传统线段树解法,同样考虑维护左 LLL 、中 MMM 、右 RRR 、和 SSS 四项数据。在这四项数据中,我们不仅要计入最优解的数值 sumsumsum ,同时还要记录最优解包含的区间最小值的个数 MincntMincntMincnt 。在一个区间的区间最小值不断增加的过程中,有一些包含更多区间最原创 2020-07-08 15:59:10 · 2026 阅读 · 1 评论 -
【LOJ3272】「JOISC 2020 Day1」汉堡肉
题目链接点击打开链接题目解法考虑问题在一维上的形式,显然,我们会希望所选的最靠左侧的点尽量靠右。因此,选择 min{Ri}\min\{R_i\}min{Ri} 是不劣的,我们可以通过重复选择 min{Ri}\min\{R_i\}min{Ri} 达成目标。考虑在原问题中,一个确定的方案 (x1,y1),(x2,y2),…(x_1,y_1),(x_2,y_2),\dots(x1,y...原创 2020-03-25 18:01:41 · 1210 阅读 · 0 评论 -
【LOJ3278】「JOISC 2020 Day3」收获
题目链接点击打开链接题目解法人和树是在相对运动的,考虑固定人的位置,移动树。可以发现,一棵树 iii 在被某个人采摘后,接下来可能采摘这棵树的人是确定的,并且,两次采摘的间隔时间也是确定的,分别记为 nxti,leninxt_i,len_inxti,leni 。这样的结构构成了一个基环内向森林。考虑一次询问,对于询问在环上的人,一棵树的贡献将会是某个数值除去此人所在环长下取整的值;对...原创 2020-03-25 17:38:11 · 850 阅读 · 0 评论 -
【LOJ3279】「JOISC 2020 Day3」迷路的猫
题目链接点击打开链接题目解法对于 A≥3A\geq 3A≥3 的情况,考虑从 000 号点出发,求出到各个点的最短路 distidist_idisti 。则对于一条边 (x,y)(x,y)(x,y) , ∣distx−disty∣≤1|dist_x-dist_y|\leq 1∣distx−disty∣≤1 ,将其染色为 min{distx,disty}%3min\{dist_x,di...原创 2020-03-24 16:37:33 · 1606 阅读 · 0 评论 -
【LOJ3282】「JOISC 2020 Day4」治疗计划
题目链接点击打开链接题目解法由于费用均为正,在最优方案中不应存在没有起到作用的区间。因此,可以考虑按照位置从左到右的顺序进行动态规划,每一步要求两个区间的左右端点可以连接上,以下是一份该算法的 O(N2)O(N^2)O(N2) 实现。#include<bits/stdc++.h>using namespace std;const int MAXN = 2e5 + 5;c...原创 2020-03-24 16:24:29 · 1023 阅读 · 0 评论 -
【LOJ3280】「JOISC 2020 Day4」首都城市
题目链接点击打开链接题目解法考虑对各个颜色建立满足如下性质的图 GGG :若颜色 iii 形成的虚树内存在颜色 jjj ,连边 i→ji\rightarrow ji→j 。若能够得到 GGG ,则运行 Tarjan 算法,找到出度为零的所有强连通分量,取最优即可。在树上倍增优化建图,可以得到具有同样性质的图。时间复杂度 O(NLogN)O(NLogN)O(NLogN) 。#incl...原创 2020-03-24 16:17:33 · 796 阅读 · 0 评论 -
【LOJ3277】「JOISC 2020 Day3」星座 3
题目链接点击打开链接题目解法将问题转化为保留权值和尽可能大的星。对于一个区域,考虑其中最高的楼房 iii ,显然,我们至多可以保留一颗高于 hih_ihi 的星。若我们没有保留任意一颗高于 hih_ihi 的星,则区域会被楼房 iii 分为独立的两块;否则,令所保留的星的横坐标为 xxx ,则区域会被分成 xxx 左侧的若干块和右侧的若干块。这两种情况中,所新产生的区域都能够由 ...原创 2020-03-24 16:11:07 · 1032 阅读 · 0 评论 -
【LOJ3276】「JOISC 2020 Day2」遗迹
题目链接点击打开链接题目解法首先考虑对于确定的 hih_ihi ,判断其是否满足条件。显然,选出 AAA 集合的过程如下:取出 hih_ihi 的两个最大值的下标,加入集合 SSS ,弹出 SSS 的最大值,加入集合 AAA ,重复 NNN 次。也有这样一个等价的过程:从后往前考虑各个 hih_ihi ,若在最终状态中,仍然存在 1≤x≤hi1\leq x\leq h_i1≤x≤h...原创 2020-03-24 16:05:45 · 1054 阅读 · 4 评论 -
【LOJ3275】「JOISC 2020 Day2」有趣的 Joitter 交友
题目链接点击打开链接题目解法问题可以转述为如下形式:在一张会自行补边的有向图上不断加边,若 xxx 连向了 yyy ,且 y,zy,zy,z 在一个二元环内, xxx 也会连向 zzz ,每次加入一条边,求出当前边数。显然由二元环连接的点集中每一条可能的边都存在。考虑将由二元环连接的点集缩点,则为了计算答案,需要维护指向该点集的入点集合 ineineine 。由此,一个点集 SSS 对...原创 2020-03-24 16:05:09 · 646 阅读 · 0 评论 -
【LOJ3274】「JOISC 2020 Day2」变色龙之恋
题目链接点击打开链接题目解法考虑子任务 444 的解法。令一只变色龙 xxx 和其性别不同的变色龙集合 SSS 会面,得到结果 resresres ,讨论若干情况可得:(1)(1)(1) 、若 LLx=xL_{L_x}=xLLx=x ,当且仅当 SSS 集合中存在与 xxx 颜色相同的变色龙, res<∣S∣+1res<|S|+1res<∣S∣+1(2)(2)(2...原创 2020-03-24 16:04:38 · 700 阅读 · 0 评论 -
【LOJ3273】「JOISC 2020 Day1」扫除
题目链接点击打开链接题目解法考虑子任务 333 的解法。可以发现,将所有元素按照 xxx 升序为第一关键字, yyy 降序为第二关键字排序,任何操作不会改变元素的相对顺序。由此,用线段树维护元素序列,修改时在线段树上二分出受到影响的区间,可以将修改操作看做一次区间对某一维坐标赋值的操作。时间复杂度 O(M+QLogM)O(M+QLogM)O(M+QLogM) 。考虑子任务 444 ,即...原创 2020-03-24 16:04:05 · 974 阅读 · 0 评论 -
【LOJ3271】「JOISC 2020 Day1」建筑装饰 4
题目链接点击打开链接题目解法将问题转化为保留权值和尽可能大的星。对于一个区域,考虑其中最高的楼房 iii ,显然,我们至多可以保留一颗高于 hih_ihi 的星。若我们没有保留任意一颗高于 hih_ihi 的星,则时间复杂度 O((N+M)LogN)O((N+M)LogN)O((N+M)LogN) 。#include<bits/stdc++.h>using name...原创 2020-03-24 16:03:25 · 654 阅读 · 2 评论 -
【BZOJ5205】【LOJ6301】「CodePlus 2018 3 月赛」白金元首与莫斯科
【题目链接】点击打开链接【思路要点】考虑从前向后、从后向前各做一次状压DP,在询问时合并信息。注意到问题等价于用\(1*2\)和\(1*1\)的棋子填满棋盘,我们可以把\(1*1\)的棋子一并在状压DP时考虑进去。合并答案时只需要枚举\(2^N\)个状态,将满足条件的DP值相乘,累加入答案即可。举例来说,在下图中,合法的状态应当满足在标号为4处已经填上棋子,在标号和为3的绿色和蓝色方格,是否填上棋...原创 2018-03-07 12:36:22 · 739 阅读 · 0 评论 -
【LOJ2587】「APIO2018」铁人两项
【题目链接】点击打开链接【思路要点】首先我们来证明点双连通分量的一个性质。引理:在一个点双连通分量中,给定任意三个不同的点\(a\),\(b\),\(c\),一定存在一条从\(a\)到\(c\)的,经过每个点至多一次的简单路径经过了\(b\)。证明:考虑网络流。在原图中存在无向边的点对之间建立无向边,容量为1;对每个点拆点限流,容量为1;由\(a\)和\(c\)向汇点连边,容量为1;由源点向\(b...原创 2018-05-22 18:01:49 · 711 阅读 · 0 评论 -
【LOJ2586】「APIO2018」选圆圈
【题目链接】点击打开链接【思路要点】将坐标系以原点为中心旋转一定角度,对圆心建立KDTree。模拟题目中的过程,利用KDTree的子树信息进行剪枝。最坏时间复杂度\(O(N^2)\),期望时间复杂度\(O(NLogN)\)。【代码】/*Double Version, Faster but Lower in Precision*/#include<bits/stdc++.h>usin...原创 2018-05-23 10:43:53 · 722 阅读 · 0 评论 -
【LOJ2585】「APIO2018」新家
【题目链接】点击打开链接【思路要点】对时间轴进行扫描线,在时间轴上的一段区间可以表示为一次插入操作和一次删除操作。问题被转化为:维护一个序列,支持在某处插入/删除一个数,以及询问以某个位置为中心,包含所有种类的数的区间的最小长度。对于询问,不难想到二分答案,二分答案后我们需要支持的是询问区间内是否出现了所有种类的数。对于每一种数,我们维护一个支持查询前驱后继的平衡树(std::set)。在序列上维...原创 2018-05-23 11:01:27 · 758 阅读 · 0 评论 -
【LOJ2320】「清华集训 2017」生成树计数
【题目链接】点击打开链接【思路要点】由于场。时间复杂度\(O(DC^2+D^2+TD^2LogN)\),其中\(C=165,D=146\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXM = 65;const int MAXN = 262144;const int MAXLOG = 20;const ...原创 2018-06-24 20:43:36 · 1825 阅读 · 3 评论 -
【LOJ2325】「清华集训 2017」小 Y 和恐怖的奴隶主
【题目链接】点击打开链接【思路要点】由于场上的每一个位置只有可能包含一个0,1,2或3血的奴隶主,因此本质不同的状态数只有\(\binom{11}{3}=165\)种,矩阵乘法+快速幂即可,询问时只需要矩阵乘向量。时间复杂度\(O(C^3LogN+TC^2LogN)\),其中\(C=165\)。上述做法可能会因为常数问题被卡到90~95分。考虑对于已知的\(M\)和\(K\),DP得到\(N≤2*...原创 2018-06-19 17:50:09 · 508 阅读 · 0 评论 -
【LOJ2321】「清华集训 2017」无限之环
【题目链接】 点击打开链接 【思路要点】 先说这道题的正解: 将棋盘看做一张二分图,每一条边拆成两个点,分别属于二分图的一边。 我们需要做一件类似于匹配的事情,同一条边的两侧或是都没有管道,或是都有管道。 通过合适的建边我们能够用最小费用最大流来解决本题。 时间复杂度O(MinCostFlow(N∗M,N∗M))O(MinCostFlow(N∗...原创 2018-06-26 21:09:16 · 479 阅读 · 0 评论 -
【LOJ6053】简单的函数
【题目链接】 点击打开链接 【思路要点】 Min25Min25Min25筛模板题。 时间复杂度O(N34LogN)O(N34LogN)O(\frac{N^{\frac{3}{4}}}{LogN})。 【代码】 #include<bits/stdc++.h>using namespace std;const int MA...原创 2018-08-09 20:55:52 · 964 阅读 · 1 评论 -
【LOJ143】质数判定
【题目链接】 点击打开链接 【思路要点】 MillerRabinMillerRabinMillerRabin 素数测试模板题。 时间复杂度 O(TLog2N)O(TLog2N) O(TLog^2N) 。 【代码】 #include&lt;bits/stdc++.h&gt;using namespace std;const int...原创 2018-09-02 17:33:40 · 619 阅读 · 0 评论 -
【LOJ2863】「IOI2018」组合动作
【题目链接】 点击打开链接 【思路要点】 首先,我们可以通过 222 次操作确定第一个字符,不妨令其为 AAA 。 接下来,对于 2≤i≤N−12≤i≤N−12≤i≤N-1 若我们已经确定了前 i−1i−1i-1 个字符为 SSS ,我们询问 SBSXBSXXSXYSBSXBSXXSXYSBSXBSXXSXY ,若得到的结果为 i−1i−1i-1 ,则说明...原创 2018-09-17 11:16:16 · 746 阅读 · 0 评论 -
【LOJ2867】「IOI2018」高速公路收费
【题目链接】点击打开链接【思路要点】首先,我们显然需要令所有边为 AAA 进行一次询问,得到 sss 到 ttt 的最短路。我们可以从找到最短路上的一个点出发:令所有与编号在 [1,mid][1,mid][1,mid] 中的点相邻的边为 BBB ,其余边为 AAA ,通过判断最短路是否不变,我们可以知道 sss 到 ttt 间是否存在一条不经过编号在 [1,mid][1,mi...原创 2018-09-18 10:06:27 · 683 阅读 · 0 评论 -
【LOJ2865】「IOI2018」狼人
【题目链接】 点击打开链接 【思路要点】 问题等价于从起点出发只经过 L,L+1,L+2,...,NL,L+1,L+2,...,NL,L+1,L+2,...,N 能够到达的点和终点出发只经过 1,2,3,...,R1,2,3,...,R1,2,3,...,R 能够到达的点是否有交。 建出原图的最小/最大生成树的 KruskalKruskalKruskal ...原创 2018-09-17 13:09:21 · 968 阅读 · 1 评论 -
【LOJ2866】「IOI2018」机械娃娃
【题目链接】 点击打开链接 【思路要点】 将起点连向第一个触发器,每一个触发器连向同一个开关 rootrootroot 。 构造一棵 iii 层的满二叉树,使得 2i≥N2i≥N2^i≥N ,这样,如果 rootrootroot 被经过了 2i2i2^i 次,那么所有节点都会回到 XXX 状态,是符合条件的。 我们将第 1,2,...,2i−N1,2,...原创 2018-09-17 12:54:02 · 721 阅读 · 0 评论 -
【LOJ2864】「IOI2018」排座位
【题目链接】点击打开链接【思路要点】对于一个 ttt ,将 1,2,3,...,t1,2,3,...,t1,2,3,...,t 所在方格染黑,剩余方格染白,考虑网格图中所有的 2∗22*22∗2 的正方形,那么 1,2,3,...,t1,2,3,...,t1,2,3,...,t 形成一个矩形的充要条件为:111 、包含 111 个黑色方格 2∗22*22∗2 的正方形恰好有 4...原创 2018-09-18 13:54:52 · 1003 阅读 · 0 评论 -
【LOJ2868】「IOI2018」会议
【题目链接】点击打开链接【思路要点】首先,方便起见,我们规定相等的数用它们的位置进行比较,这样所有数的大小关系是唯一确定的。考虑一个询问 [l,r][l,r][l,r] ,令 amid=Maxi=lr{ai} (l≤mid≤r)a_{mid}=Max_{i=l}^{r}\{a_i\}\ (l≤mid≤r)amid=Maxi=lr{ai} (l≤mid≤...原创 2018-09-19 12:51:06 · 1356 阅读 · 0 评论 -
【LOJ2326】「清华集训 2017」简单数据结构
【题目链接】点击打开链接【思路要点】注意到答案是 O(LogM)O(LogM)O(LogM) 级别的。对于每一个点 iii 我们暴力维护其 dpdpdp 值 dpidp_idpi 以及能够转移到 iii 的各个位置的中 dpdpdp 值为 jjj 的位置数 cnti,jcnt_{i,j}cnti,j 。令 f(x)f(x)f(x) 表示 xxx 的因子个数。对于操作 0...原创 2018-10-03 15:09:35 · 691 阅读 · 0 评论 -
【LOJ2328】「清华集训 2017」避难所
【题目链接】点击打开链接【思路要点】令 xxx 表示满足 x2≥bx^2\geq bx2≥b 的最小的质数, yyy 表示满足 y3&lt;by^3&lt; by3<b 的最大的质数。注意到当 bbb 足够大时, 333 个 x∗yx*yx∗y 可以构成一组解,因为贪心会将其分解为 x,x,x,y3x,x,x,y^3x,x,x,y3 。事实上,当 b≥1...原创 2018-10-03 16:12:06 · 526 阅读 · 4 评论 -
【LOJ2330】「清华集训 2017」榕树之心
【题目链接】点击打开链接【思路要点】首先,树是二分图,只有一侧的点可能成为心。维护每一棵子树会产生的向下推动的次数可能的最大值 MaxMaxMax 和最小值 MinMinMin ,在奇偶性与 MaxMaxMax 和 MinMinMin 相同时,任意一个 MinMinMin 至 MaxMaxMax 中的数值都能够被取到。树形 dpdpdp 求得将每一个点 iii 至 111 号...原创 2018-10-04 10:54:20 · 347 阅读 · 0 评论 -
【LOJ2331】「清华集训 2017」某位歌姬的故事
【题目链接】点击打开链接【思路要点】注意到若一个位置被两种音高 a,b (a&gt;b)a,b\ (a&gt;b)a,b (a>b) 覆盖,等于它没有被 aaa 覆盖。对每一种音高分别 dpdpdp 即可。时间复杂度 O(T∗Q2)O(T*Q^2)O(T∗Q2) 。【代码】#include<bits/stdc++.h&...原创 2018-10-04 11:06:10 · 731 阅读 · 0 评论 -
【LOJ2327】「清华集训 2017」福若格斯
【题目链接】点击打开链接【思路要点】 Matrix67Matrix67Matrix67 一篇关于 surreal&nbsp;numbersurreal\ numbersurreal&nbsp;number 的博客 。考虑用 surreal&nbsp;numbersurreal\ numbersurreal&nbsp;number 解决不平等博弈问题。手动绘制转移图,计算出各个...原创 2018-10-12 13:08:46 · 820 阅读 · 0 评论 -
【LOJ2329】「清华集训 2017」我的生命已如风中残烛
【题目链接】点击打开链接【思路要点】一个直观的思路是模拟该过程,当路上遇到环的时候通过类似取模的手段加速。注意到每绕一个环 LLL 的长度至少减半,因此绕环的个数不会超过 O(LogL)O(LogL)O(LogL) 。并且一个点如果在某一时刻不能够到,那么这个点就不会再被够到,所以找到一个环至多需要遍历 O(N)O(N)O(N) 个点,因此如果我们预处理每个点作为原点时极角排序...原创 2018-10-05 14:46:45 · 656 阅读 · 0 评论 -
【LOJ2322】「清华集训 2017」Hello world!
【题目链接】点击打开链接【思路要点】一个 101310^{13}1013 以内的数开根 666 次后一定会变成 111 ,因此有效的修改次数不会超过 6N6N6N 。设定一个阈值 α\alphaα ,若 k≥αk≥\alphak≥α ,则暴力进行询问或修改,借助长链剖分求 kkk 级祖先,单次操作时间复杂度为 O(Nα)O(\frac{N}{\alpha})O(αN) 。考...原创 2018-09-28 11:19:32 · 629 阅读 · 0 评论 -
【LOJ2324】「清华集训 2017」小 Y 和二叉树
【题目链接】点击打开链接【思路要点】答案的第一位一定是编号最小的度数不为 333 的节点,不妨设为 rootrootroot ,以 rootrootroot 为根, iii 的子树内编号最小的度数不为 333 的节点为 dpidp_idpi 。在这个思路上,我们考虑如何比较 xxx 和 yyy 两点作为根节点时的答案哪个更优。111 、当 lca(x,y)≠x,ylca(x...原创 2018-09-29 14:05:12 · 545 阅读 · 0 评论 -
【LOJ2323】「清华集训 2017」小 Y 和地铁
【题目链接】点击打开链接【思路要点】很不错的脑洞题。附上官方题解。时间复杂度 O(T∗2N2)O(T*2^{\frac{N}{2}})O(T∗22N) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 105;const int INF = 1e9;typede...原创 2018-09-29 14:20:46 · 533 阅读 · 0 评论 -
【LOJ2261】「CTSC2017」密钥
【题目链接】点击打开链接【思路要点】使用一个简单的扫描线可以求出 XXX 在每个位置处的特征值。时间复杂度 O(N)O(N)O(N) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 2e7 + 5;typedef long long ll;typedef long d...原创 2018-11-01 13:47:28 · 420 阅读 · 0 评论 -
【LOJ2263】「CTSC2017」游戏
【题目链接】点击打开链接【思路要点】仿照题目的第二问的解法,我们先来考虑本题的平方做法。令 BBB 表示事件 xi=1x_i=1xi=1 ; AAA 表示事件 xj=cx_j=cxj=c ,其中 jjj 是 iii 之前第一个确定的事件,若 iii 之前没有确定的事件,则 j=0j=0j=0 ; CCC 表示事件 xk=cx_k=cxk=c ,其中 kkk 是 iii 之...原创 2018-11-01 18:27:36 · 916 阅读 · 0 评论 -
【LOJ2264】「CTSC2017」吉夫特
【题目链接】点击打开链接【思路要点】由 LucasLucasLucas 定理, (ab)%2=(a/2b/2)∗(a%2b%2)%2\binom{a}{b}\%2=\binom{a/2}{b/2}*\binom{a\%2}{b\%2}\%2(ba)%2=(b/2a/2)∗(b%2a%2)%2 。因此, (ab)%2=1\binom{a}{b}\%2=1(ba)%2=1 ...原创 2018-11-02 13:37:27 · 417 阅读 · 0 评论 -
【LOJ2262】「CTSC2017」网络
【题目链接】点击打开链接【思路要点】首先,本题一点重要的观察是,新建的路径的两个端点必定在树的直径上,若一个方案新建路径的两个端点有一个不在直径上,我们令其向直径靠近,不会使答案变劣。因此,我们可以将直径拿出来考虑,令直径上点数为 tottottot ,每一个点为 posipos_iposi , posipos_iposi 与 posi−1pos_{i-1}posi−1 ...原创 2018-11-02 21:30:52 · 962 阅读 · 1 评论