CF1344B Monopole Magnets 题解

题目链接首先我们考虑合法的地图需要满足的条件在任意一行或一列中,不存在两个不相邻的黑色方块 A,BA,BA,B。因为,根据题目中规则,每行每列上都至少有一个南极磁铁。所以不管这个南极磁铁在那里,都会有至少一个北极磁铁可以到达 A,BA,BA,B 之间的白方块上。例如,样例 222 就是不合法的对于一个方格 (x,y)(x,y)(x,y),只有当 (x,y)(x,y)(x,y) 为黑格,或者它所在行列(包括 (x,y)(x,y)(x,y))上没有黑格时,才能在 (x,y)(x,y)(x,y) 上放南极
分类: 其他 发布时间: 03-02 08:25 阅读次数: 0

CF1335F Robots on a Grid 题解

题目链接看到很多题解都是写的 O⁡(nm⋅log⁡nm)\operatorname{O}(nm\cdot \log nm)O(nm⋅lognm) 的倍增,这里将一种 O(nm)O(nm)O(nm) 的做法首先,我们可以将给出的网格图转化为若干棵形如下图的内向基环树为了方便理解,我们将环上的节点从 000 开始依次编号。满足对于环上的每一条边 [x→y][x \rightarrow y][x→y],x+1=yx+1=yx+1=y接着,我们不妨让环上的点的编号沿着环上的有向边移动一次这样,对于所有
分类: 其他 发布时间: 03-02 08:25 阅读次数: 0

GDFZOJ Alyona和一棵树(dfs + LCA + 树剖或树上差分)

题目链接题目大意给出一棵 nnn 个点的有根树,点和边都带权 ,该树以 111 号节点为跟设 dist(x,y)dist(x,y)dist(x,y) 为 xxx 到 yyy 的路径上的边权和如果 uuu 在 vvv 的子树中,且 dist(u,v)≤audist(u,v) \le a_udist(u,v)≤au​ (aaa 为点权),那么我们称顶点 vvv 控制顶点 uuu (v≠u)(v \neq u)(v​=u)。对于每个节点 1≤x≤n1 \le x \le n1≤x≤n,你需要求出它控
分类: 其他 发布时间: 03-02 08:24 阅读次数: 0

洛谷 P3594 [POI2015]WIL-Wilcze doły 题解

题目链接以前听人讲过,现在全都忘了QwQ,特此写一个题解首先,为了选到的区间尽可能的长,我们要把该的区间中尽可能多的数变为 000,并且满足消掉的数字和尽可能大。我们考虑用双指针维护区间 [l,r][l,r][l,r],并且用一个单调队列维护该区间中的长度为 ddd 的 区间,满足这些区间和单调递减。那么,如果 sum(l,r)−sum(删去的区间)<psum(l,r)-sum(删去的区间)<psum(l,r)−sum(删去的区间)<p,则 ++r,否则 ++l#include&
分类: 其他 发布时间: 03-02 08:24 阅读次数: 0

洛谷 P3572 [POI2014]PTA-Little Bird 题解 (单调队列优化DP)

题目链接我们设 f[i]f[i]f[i] 表示小鸟从第 111 棵树跳到第 iii 棵树的最小花费。那么,朴素的 O⁡(n2)\operatorname{O}(n^2)O(n2) 转与方程就是 f[i]=f[j]+[d[j]≤d[i]]f[i]=f[j]+[d[j]\le d[i]]f[i]=f[j]+[d[j]≤d[i]],其中 [d[j]≤d[i]][d[j]\le d[i]][d[j]≤d[i]] 如果中括号中的条件满足则为 111,否则为 000我们可以发现,对于 x<yx <yx
分类: 其他 发布时间: 03-02 08:24 阅读次数: 0

CF115E Linear Kingdom Races(线段树优化DP)

题目链接看完题后,你的可能第一个想法是考虑每场比赛是否进行,并计算相应的路费。但是,如果两次比赛的路线重合,路费就只用支付一次。由此就产生了后效性,对我们的DP造成了困难。那么,我们可以反过来想:考虑每条路是否要支付路费(修路),并算出所有可进行的比赛赚到的钱。设 f[i]f[i]f[i] 表示 1…i1\dots i1…i 条路修复若干条路后可以赚到的最多的钱。转移方程:f[i]=f[i−1]f[i]=f[i-1]f[i]=f[i−1],即不修第 iii 条路。f[i]=max⁡0≤j&l
分类: 其他 发布时间: 03-02 08:24 阅读次数: 0

CF474E Pillars (线段树优化DP)

题目链接题目大意给出一个长度为 nnn 的序列 aaa 和一个参数 mmm,要求求出一个最长的子序列,满足相邻元素的差大于等于 mmm解题思路本题跟LIS的 O⁡(nlog⁡n)\operatorname{O}(n\log n)O(nlogn) 做法非常相似,需要用到桶。首先,我们要将 a[i]a[i]a[i] 离散化。设 f[i]f[i]f[i] 表示以 a[i]a[i]a[i] 结尾的最长满足条件的子序列的长度,pre[i]pre[i]pre[i] 表示 f[i]f[i]f[i] 从 f[p
分类: 其他 发布时间: 03-02 08:23 阅读次数: 0

洛谷 P6786「SWTR-6」GCDs & LCMs

由于现在还没有入到主题库里,暂时没有题号和题目链接题目大意给出一个长度为 nnn 的序列 aaa,你需要找出它的一个子序列 bbb(设 bbb 的长度为 mmm),并满足以下条件对于所有 (1≤i≤m)(1\le i \le m)(1≤i≤m),bib_ibi​ 要么是 bbb 中最大的元素,要么存在一个 bj>bib_j>b_ibj​>bi​,满足 bi+bj+gcd⁡(bi,bj)=lcm⁡(bi,bj)b_i+b_j+\gcd(b_i,b_j)=\operatorname{l
分类: 其他 发布时间: 03-02 08:23 阅读次数: 0

洛谷 P1073 最优贸易 (最短路)

P1073 最优贸易看网上有很多很麻烦的做法,这里提供一个最简单的设 disidis_idisi​ 表示 111 到 iii 的所有路径上的最小点权(水晶球价格),distidist_idisti​ 表示 iii 到 nnn 的所有路径上的最大点权。那么,最后的答案就是 max⁡i=1n{disti−disi}\max\limits_{i=1}^n \{dist_i-dis_i\}i=1maxn​{disti​−disi​}因为每个点可以经过多次,用的是SPFA#include<cstdio
分类: 其他 发布时间: 03-02 08:23 阅读次数: 0

洛谷 P2746 [USACO5.3]校园网Network of Schools (缩点)

题目链接本题的第一问的确很模板,但第二问却没有那么简单。看很多题解都直接贴结论,就算有讲解的也极其简略,这里写一篇较详细的首先,将原图进行缩点,形成一个由若干个连通块组成的DAG。我们先考虑单个连通块的情况:很显然是 出度为零的点数与入度为零的点数的最大值,因为一条边可以给两个(一个入度为零一个出度为零)点做出贡献。这样,不管你从哪个点开始,你都可以走到一个末端点 xxx(出度为零),从而走到一个与 xxx 连通的一个初始点(入度为零)。接下来,因为你在一个初始点,所以你可以走到该连通块内所有的末
分类: 其他 发布时间: 03-02 08:23 阅读次数: 0

P6810 「MCOI-02」Convex Hull 凸包 题解

题目链接看绝大多数题解都是莫反,这里写个不用莫反的(其实就是推式子)∑i=1n∑j=1mτ(i)τ(j)τ(gcd⁡(i,j))\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\tau(i)\tau(j)\tau(\gcd(i,j))i=1∑n​j=1∑m​τ(i)τ(j)τ(gcd(i,j))∑i=1nτ(i)∑j=1mτ(j)τ(gcd⁡(i,j))\sum\limits_{i=1}^{n}\tau(i)\sum\limits_{j=1}^{m}\tau(j)\
分类: 其他 发布时间: 03-02 08:22 阅读次数: 0

Atcoder Beginner Contest 178E 题解

题目链接题目大意在平面直角坐标系中给出 nnn 个点 (n≤2⋅105)(n \le 2 \cdot 10^5)(n≤2⋅105),需求出两点之间最大的曼哈顿距离解题思路首先,我们枚举每一个点 (x,y)(x,y)(x,y),并把剩下的每个点 (u,v)(u,v)(u,v) 分成四类在以 (x,y)(x,y)(x,y) 为源点的参考系的第一象限中在以 (x,y)(x,y)(x,y) 为源点的参考系的第二象限中在以 (x,y)(x,y)(x,y) 为源点的参考系的第三象限中在以 (x,y)(
分类: 其他 发布时间: 03-02 08:22 阅读次数: 0

洛谷 P2384 最短路 题解

题目链接比较套路的一道题,本题的方法也可以用来做树的最大乘积独立集由于本题需要取模,所以不能直接求最短路我们考虑将每条边取对数,也就是将边权为 www 的边变为 log⁡2w\log_2wlog2​w这样,根据幂的性质,我们就将乘积最短路转化为了普通最短路,证明显然最后记得要把边权变回来输出#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include
分类: 其他 发布时间: 03-02 08:22 阅读次数: 0

洛谷 P5482 [JLOI2011]不等式组 题解

题目一道线段树题目水题开一棵线段树,第 iii 个位置维护当 x=ix=ix=i 时成立的不等式数量对于每次添加不等式的操作,先算出对应不等式的解集,可证这个解集是一段连续的区间(可能无限长)。接着将解集中对应的位置,并保存这个区间,方便以后撤销操作查询 x=kx=kx=k 时直接单点查询就可以了注意:本题要注意不等号的变向,以及 a=0a=0a=0 的情况代码懒得写了,原因如上...
分类: 其他 发布时间: 03-02 08:22 阅读次数: 0

CSP 2020 复赛游记

坐标GD复赛前打了19天正睿,天天自闭QwQDay 0\text{Day 0}Day 0打了一天模板,晚上睡觉前才发现 欧拉筛和扩欧求逆元 不记得了,爬起来复习Day 1\text{Day 1}Day 1早上五点半坐车出发,睡了一路提前了半个小时在考场外面排队等,抢到了队伍最前面进了考场,坐在考场的最角落键盘手感极差,而且跟旁边的人都不一样开场本来想先看一遍题,结果看到T1这么水,就写把它码了QwQT1签到题,考了一个二进制唯一分解定理T2需要维
分类: 其他 发布时间: 03-02 08:21 阅读次数: 0

CSP - J 2020 T1 优秀的拆分

题目链接题目要求将 nnn 拆分成若干个不同的 222 的幂。显然,根据二进制的唯一分解性,可知只有一种拆分方法不能拆出 202^020,显然就是要满足 nnn 为偶数然后这题就做完了#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>using namespace std;long long n;inline long long read(){ l
分类: 其他 发布时间: 03-02 08:21 阅读次数: 0

CSP - J 2020 T2 直播获奖

题目链接考场看完题后,感觉是个数据结构题维护一个数据结构,需要支持单点插入和求第 kkk 小这题可以直接用平衡树(虽然是PJ),但这里讲一个简单易懂的平衡树替代品:vector + 二分
分类: 其他 发布时间: 03-02 08:21 阅读次数: 0

CSP - J 2020 T4 方格取数

题目链接一道DP题,标准做法是 O⁡(n2)\operatorname{O}(n^2)O(n2) 的单调队列优化DP,这里讲一个 O⁡(n2log⁡n)\operatorname{O}(n^2 \log n)O(n2logn) 的线段树优化DP做法仔细观察小熊走路的方式,发现他不能向左走。也就是说,当他到了第 jjj 的时候,就再也不能回到第 1…j−11 \dots j-11…j−1 列去了。所以,我们可以按照列来DP...
分类: 其他 发布时间: 03-02 08:21 阅读次数: 0

CSP - S 2020 T1 儒略日

题目链接大力模拟题由于我太菜了,考试的时候直接硬生生的从公元前4713年到公园1583年的每一天都给递推出来了,大概有 2⋅1062 \cdot 10^62⋅106 天。如果超出了范围就取个模,再特判几下就完事了结果竟然40min内过了大样例/jk#include<cstdio>#include<iostream>#include<algorithm> using namespace std;const long long Maxn=3600000+10;
分类: 其他 发布时间: 03-02 08:20 阅读次数: 0

Atcoder Beginner Contest 184A Determinant 题解

题目链接输入 a,b,c,da,b,c,da,b,c,d,然后直接输出 ad−bcad-bcad−bc 即可#include<cstdio>#include<iostream>#include<algorithm>using namespace std;int a,b,c,d;inline int read(){ int s=0,w=1; char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-
分类: 其他 发布时间: 03-02 08:20 阅读次数: 0