题解
文章平均质量分 84
JokerJim
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【题解】 P6834 【[Cnoi2020]梦原】
分析首先我们可以发现,题目中所说的“最优策略”,实际上就是每次不停地选尽量大的连通块,直到连通块中有一个节点上地果子被取完。此时这个节点相当于从树上被删去了,并且将它所在的连通块分割成了若干个小连通块。所以一个连通块能完整存在的时间,取决于连通块中aia_iai的最小值。于是我们先来考虑一种最简单的情况:如果一开始一条边都没有,我们所需的操作次数即为∑i=1nai\sum\limits_{i=1}^na_ii=1∑nai。然后我们考虑加上一条边,假设此时这条边连接了iii和jjj,那么根据上面的原创 2020-11-04 11:02:48 · 497 阅读 · 0 评论 -
【题解】 CF1359D 【Yet Another Yet Another Task】
扫描线大佬真的强……我来说说我的奇怪做法。根据题意,只要先手选定一个区间之后,拿掉的一定是最大值,那么我们可以考虑枚举这个被拿掉的最大值。于是考虑每个数作为最大值能影响的范围,显然可以用单调栈求出左右第一个比它大的。记iii在[l,r][l,r][l,r]内是最大值,那么我们就是要从这个位置开始,分别向左向右找到一段和最大的子段。先考虑右边,左边同理。我们对原序列进行前缀和,那么也就是要找到[i,r][i,r][i,r]中前缀和的最大值。所以我们用st表预处理,查询区间最大值即可。代码中为了方便原创 2020-11-04 11:00:58 · 492 阅读 · 0 评论 -
【题解】 CF1359E 【Modular Stability】
我们先拉出序列中最小的那个数aaa,假设现在有一个大于aaa的模数bbb,那么思考一下它们的顺序对答案的影响。对于任意正整数xxx,我们要满足x%a%b=x%b%ax\%a\%b= x\%b\%ax%a%b=x%b%a,又因为b>ab>ab>a,所以x%a%b=x%ax\%a\%b=x\%ax%a%b=x%a,所以上式即x≡x%b(moda)x \equiv x\% b\pmod ax≡x%b(moda)然后设x=tb+yx=tb+yx=tb+y,那么tb+y≡y(moda)tb+y\原创 2020-11-04 10:59:36 · 450 阅读 · 1 评论 -
【题解】 UVA1707 【Surveillance】
看到是环,于是我们非常套路地把它拉成链。接着就要枚举一个起点iii,找到至少覆盖到i+len−1i+len-1i+len−1这个位置需要使用的最少线段数。由于每个点都要计算,所以可以考虑预处理倍增,计算pi,jp_{i,j}pi,j表示从iii开始,使用2j2^j2j条线段不能覆盖的第一个位置。转移即为pi,j=ppi,j−1,j−1p_{i,j}=p_{p_{i,j-1},j-1}pi,j=ppi,j−1,j−1pi,0p_{i,0}pi,0即为覆盖iii点的线段的最大右端点,可以用差分的原创 2020-11-04 10:54:08 · 361 阅读 · 0 评论 -
【题解&杜教筛总结】51Nod1238 最小公倍数和V3
前置知识:杜教筛。(不会点这里)。大片公式预警!!!题意求∑i=1n∑j=1nlcm(i,j)\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}\text{lcm}(i,j)i=1∑nj=1∑nlcm(i,j)。(1≤n≤10101\leq n\leq 10^{10}1≤n≤1010)题解简单回顾开始之前,先来回顾一下几个和杜教筛有关的式子(定义∗*∗为数论函数的狄利克雷卷积):KaTeX parse error: No such environment:原创 2020-06-03 14:58:32 · 2931 阅读 · 0 评论 -
【题解】CF808G Anthem of Berland
题意传送门 luogu题解dp与kmp的巧妙结合。设文本串s长度为nnn,模式串t长度为mmm。题面中赤裸裸地告诉你nm≤107nm\leq 10^7nm≤107,这就摆明了复杂度应该在O(nm)O(nm)O(nm)这个级别,这个nnn的复杂度肯定是扫一遍s,至于mmm,可以猜想是对于s的每个位置进行暴力的匹配。我们可以考虑用dp来解决这个问题。设fif_ifi表示t在s的前iii个位...原创 2020-03-14 20:19:19 · 7807 阅读 · 0 评论 -
【题解】洛谷P6006 [USACO20JAN]Farmer John Solves 3SUM G
题意传送门题解发现n≤5000n \leq 5000n≤5000,那么我们自然想到O(n2)O(n^2)O(n2)预处理之后O(1)O(1)O(1)回答询问。先考虑一个更简单的问题,如果f[i][j]f[i][j]f[i][j]表示在区间[l,r][l,r][l,r]中,满足k∈(l,r),a[k]+a[l]+a[r]=0k \in (l,r),a[k]+a[l]+a[r]=0k∈(l,r...原创 2020-03-14 20:18:48 · 7612 阅读 · 0 评论 -
【题解】洛谷P5588 小猪佩奇爬树
题意传送门题解这里是一种时空复杂度均为O(nlogn)O(n\log n)O(nlogn)的暴力做法。感觉这道题顺着思路想下去还是挺简单的。题目的要求实际上是对于同种颜色的点,都必须在同一条链上。那么我们自然想到把每一种颜色单独处理,先找到每种颜色中深度最大的那个点,显然如果这种颜色能符合一条链的条件,那么这个最深的点一定是链的一端,我们设它为xxx。接着我们考虑另一端的位置。这里出...原创 2019-10-14 15:44:27 · 13318 阅读 · 0 评论 -
【题解】P2519 [HAOI2011]problem a
原题传送门Solution这题难在题意的转化。(同时说一句:STL大法好啊!!)题目里给定了对于第iii个人,有aia_iai个人分数比他高,bib_ibi个人分数比他低,那么我们可以知道他的排名为ai+1a_i+1ai+1,并且有n−ai−bin-a_i-b_in−ai−bi个人(包括自己)与他分数相等。那么我们就可以知道这段分数相等的区间为[ai+1,n−bi][a_i+1, ...原创 2019-04-18 10:07:14 · 411 阅读 · 0 评论 -
【题解】方格取数&&骑士共存问题(二分图最大独立集)
方格取数问题传送门骑士共存问题传送门分析之所以把这两题放在一起,是因为它们有很多的共同点。单看题目背景就知道其实它们挺类似的:都是在棋盘(网格)中,且点与点之间有相互的排斥关系。实际上它们的解法思想也几乎一模一样。方格取数先讲方格取数。首先我们发现这类问题的最重要的特点:点与点之间会互相排斥,且每个点只有选与不选两种状态。于是我们可以考虑构建二分图,并建立超级源点sss和汇点t...原创 2019-04-26 20:09:39 · 531 阅读 · 0 评论 -
【题解】CF875C National Property
题意给定一些字符串,其中字母用数字表示,并且初始是小写的。你可以把一些小写字母改成大写,但同时你要把所有同种字母全部改成大写。问是否能经过一些操作使得最终的字符串序列满足按字典序升序排列。如果能,则需要输出方案。题解可以发现每种字母只有两种状态:大写或者小写。并且状态受到相邻字符串的大小约束,于是我们可以朝2-SAT的方向思考~~(其实要不是这是我们2-SAT作业题,还真想不到)~~。我们...原创 2019-04-22 15:57:46 · 727 阅读 · 0 评论 -
【题解】P3119 [USACO15JAN] Grass Cownoisseur
题意传送门题意很简单,给定一张有向图,允许选择在一条边上反向行走一次,求从1出发,且最终回到1,最多能遍历到的点数。Solution一道综合性的图论好题。首先想到,对于一个强连通分量内的点,都可以互相到达,直接缩成一个点,使原图变为DAG,并给每个强连通分量赋一个权值,为这个强联通分量内的点数。然后对于一张DAG,考虑实现反向行走一次的条件。这时我们又发现,反向行走一次后,并不改变图的...原创 2019-04-03 18:34:35 · 451 阅读 · 0 评论 -
【题解】CF1029D Concatenated Multiples
原题传送门Solution我们发现,题目中要求的"把a接到b前面"实际上等于a∗10log10b+ba*10^{log_{10}b}+ba∗10log10b+b。于是我们自然想到预处理出ai∗10xmod  ka_i*10^x \mod kai∗10xmodk,显然xxx不会超过10。然后对于每个aia_iai,查询有多少数接到自己...原创 2019-04-15 21:06:20 · 513 阅读 · 0 评论 -
【题解】CF1147C Thanos Nim
题意传送门有nnn堆石子(nnn为偶数),每次玩家要选择恰好n2\frac{n}{2}2n堆石子,并从每一堆中任意拿走数量大于000的石子(每堆拿的数量可以不同)。问先手是否必胜。分析先上结论:当石子数最小的堆数量不超过n2\frac{n}{2}2n时,先手必胜,否则先手必败。接下来是感性理解时间。我们考虑最小堆数量超过n2\frac{n}{2}2n的情况。那么此时先手不管...原创 2019-05-21 15:07:58 · 707 阅读 · 0 评论 -
【题解】震惊!!!GCD SUM套路竟狂水七倍经验!!!
标题党又来了题目描述给定nnn,求∑i=1n∑j=i+1ngcd(i,j)\sum\limits_{i=1}^{n} \sum\limits_{j=i+1}^{n}gcd(i,j)i=1∑nj=i+1∑ngcd(i,j)。解法1:暴力两个for搞定。每一次计算复杂度为O(n2)O(n^2)O(n2)。于是你可以水掉UVA11417。解法2:化柿子既然直接枚举i,ji,j...原创 2019-04-09 11:46:33 · 654 阅读 · 0 评论 -
【题解】P1979 华容道
AK 提高试炼场祭原题传送门题解这是一道神仙题首先发现爆搜有70分!!!要是在考场上那肯定直接暴力啊!然而还是得写正解。首先,爆搜慢是因为有很多无用状态(比如空格在乱跑但指定棋子并没有移动)。所以我们要剪掉这些状态。我们考虑只搜有用的状态。也就是说我们强制让空格处于棋子的四周,这个时候就会出现两种移动的情况:空格绕棋子四周走。空格与棋子互换位置。对于第一种情况,我们发现可以...原创 2019-04-19 07:39:25 · 536 阅读 · 1 评论 -
【题解】CF535D Tavas and Malekas
阅读理解题题意解释给定文本串的长度nnn和一个模式串sss,并且已知模式串在文本串中某些出现位置(不一定仅在这些位置出现),求可能的文本串的数量。分析首先输入有可能出现方案为0的情况(即不合法),于是我们先考虑不合法的判断。显而易见的是当sss出现的结尾位置大于nnn时,直接可以判定为不合法。然后就是当两个模式串出现位置有重叠时,假如重叠部分匹配不上,那么显然无解。(具体判定方式下文会...原创 2019-05-03 15:29:04 · 522 阅读 · 0 评论 -
【题解】CF109B Lucky Probability
写这篇题解纯粹是为了水水社区贡献题意直接上传送门分析我们发现虽然题目中给的区间范围很大,但是实际上所包含的“幸运数”并不多,于是我们可以考虑枚举相邻的kkk个幸运数,并累计恰好包含这kkk个数的区间总数。最后用符合条件的区间数除以总区间数,就是要求的概率。思路就是那么简单,但细节却比较复杂。首先假设我们枚举的kkk个数的左右端点编号为i,ji,ji,j,用num[i]num[i]num[...原创 2019-05-14 16:09:10 · 474 阅读 · 0 评论 -
【题解】SP23881 God of Nim
题意传送门有nnn堆石子,第iii堆石子每次可以取的数量在[1,ki][1,k_i][1,ki]间,问先手是否必胜。分析这显然是一个NimNimNim游戏的变种。我们首先通过SGSGSG函数分析。一般这种由多个小状态(每堆石子)组成的局面,都可以先单独分析出每个小状态的SGSGSG函数值,然后异或起来,最后得到整体局面的SGSGSG函数值。(抄一波博弈论课件)那么如果我们把每一堆石子...原创 2019-05-21 14:28:16 · 396 阅读 · 0 评论 -
【题解】P4049 [JSOI2007]合金
模型转换+计算几何基础好题。题意直接上传送门模型转换首先我们发现,由于三个属性的和恒为111,那么实际上第三个属性并没有什么用。于是我们可以只用两个属性描述一个物品,那么就可以把物品放在二维平面上,当做一堆点来处理。接下来有一个神奇的结论~~(我还是不知道如何证明)~~:对于两个点(也可以当做向量),在本题中能由这两个物品构成的点一定在以这两个点为端点的线段上。推广(感性理解)...原创 2019-05-23 20:37:20 · 521 阅读 · 0 评论 -
【题解】CF1181D Irrigation
题意传送门给定MMM个城市,每年会选出一个城市举办比赛,现给出前NNN年城市举办比赛的情况。在接下来的年份中,每年的比赛会在举办比赛次数最小的城市举办,如果有很多城市举办次数均为最小值,则在编号最小的城市举办比赛。现给出 QQQ个询问,每次询问第 KKK 年在哪个城市举办比赛。分析由于个人习惯,把题目中的nnn和mmm意义互换。我们可以把问题抽象成有nnn个宽度相等高度不同的矩形,给出初...原创 2019-06-19 09:41:54 · 6203 阅读 · 0 评论 -
P3647 [APIO2014]连珠线
题意传送门题解我们发现,如果一棵树的形态固定了,那么蓝线的方向一定是son[x]-x-fa[x],那么我们就可以先随便定一个根进行DP。我们设f[i][0]f[i][0]f[i][0]表示以iii为根的子树中,且iii不作为蓝线的中点能够得到的最大价值。同理,设f[i][1]f[i][1]f[i][1]表示以iii为根的子树中,iii作为蓝线的中点能够得到的最大价值。我们分别对于两种情况...原创 2019-10-05 21:19:50 · 12888 阅读 · 0 评论 -
【tarjan强连通分量】洛谷P1726 上白泽慧音
【tarjan强连通分量】洛谷P1726 上白泽慧音题目传送门妥妥的强连通模板啊(详细解释戳这里)#include <bits/stdc++.h>#define MAXN 5005#define MAXM 50005*2using namespace std;int n, m, cnt;int head[MAXN], Next[MAXM], vet[MAXM]...原创 2018-10-11 16:49:41 · 313 阅读 · 0 评论 -
【算法&题解】莫比乌斯反演及一些经典套路
【算法&题解】莫比乌斯反演及一些经典套路首先声明,由于我太菜了,本文很多式子可能并不会有详细的证明。若要了解莫比乌斯反演最基本的证明,可以去这里,本文主要讲解一些套路。莫比乌斯函数我们定义莫比乌斯函数如下:设n=∏i=1mpiai,k=∏i=1maiμ(n)={1(n=1)(−1)m(k=1)0(k>1)设n=\prod_{i=1}^{m} p_i^{a_i},k=...原创 2019-04-11 20:21:49 · 1536 阅读 · 0 评论 -
【题解】SP19149 Virus Revisited
题意原题传送门Solution由于最后求的是原点的细胞数,那么一定是先从原点向外扩展,再扩展回来到达原点。那么我们就可以把答案转化为从原点出发,经过TTT时间回到原点的方案数。于是我们考虑dpdpdp,设f[i][j]f[i][j]f[i][j]表示用iii个维度,经过2j2j2j的时间回到原点的方案数(显然奇数时间答案为0)。那么我们考虑对于一个新的维度i+1i+1i+1和新的时间...原创 2019-03-28 11:21:24 · 385 阅读 · 0 评论 -
【题解】SP5973 Selecting Teams(3.30模拟赛T1)
题意有nnn个不同的物品,在其中选出不多于kkk个,再从选出的mmm个中选择lll个,并从lll个中选出1个,给定nnn和kkk,求总情况数对2252^{25}225取模(具体模数不同,但都是2的整数次幂)。思路各位巨佬一上来就是一串简洁易懂的理解,像我这种蒟蒻只能老老实实手推式子。首先按照题意写出式子:ans=∑m=1k(Cnm×(∑i=...原创 2019-04-01 16:08:21 · 412 阅读 · 0 评论 -
Loj10103「一本通 3.6 练习 4」电力
Loj10103「一本通 3.6 练习 4」电力题目传送门题意 求一个图删除一个点之后,联通块最多有多少。思路 很显然对于在有割点的情况下,要删除割点,而删除割点后增加的连通块个数可以这样计算: 设num[i]表示第i个点被删除后增加的连通块个数。当前点x为搜索树的根,且孩子的数量大于1,那么删除后连通块的增加量为孩子的数量-1(因为本身就是一个大连通块)。当前点x不是树根...原创 2019-02-11 21:34:45 · 572 阅读 · 0 评论 -
【题解】【洛谷P1126】 机器人搬重物
P1126 机器人搬重物传送门这道题本来没啥好说的,但细节实在比较多,被坑了好多次。首先输入的是格子图,需要转化成点图,具体操作是 最坑的一个点在于,平时写宽搜的时候,遇到出边界或者不能访问的点时,都是直接进入下一层循环(continue),但在这道题中,由于可以走1~3步,那么当路径上出现障碍时,则不能进行下一轮循环,需要break。代码:#include <bits...原创 2019-01-07 10:16:58 · 448383 阅读 · 89 评论 -
【差分约束】洛谷P1993 小K的农场 题解
【差分约束】洛谷P1993 小K的农场 题解题目传送门分析一看题目就知道可以把条件转换成不等式,然后使用差分约束求解。差分约束可以自行 百度OR谷歌。可以把建边为w(a,b) = c, 转换成 ,建边为w(b,a) = -c。然后使用dfs优化的spfa跑一个最短路判断负环就可以了。代码#include <bits/stdc++.h>#define MAX ...原创 2018-10-10 22:22:10 · 300 阅读 · 0 评论 -
【树形DP】P1352 没有上司的舞会
【树形DP】P1352 没有上司的舞会题目传送门分析:题目里明确告诉了你上司与下属的关系是一颗树,所以这一题是很明显的树形DP,而因为下属和直接上司不能同时参加,所以问题转换成一棵树上相邻的节点不能同时取,求所取点和的最大值。那么我们可以自上而下地思考,对于一个节点,自身有取或不取两种情况,对应这两种情况的子树情况也不一样,可以分类讨论:如果这个节点自身取,则他的直接儿子都不能...原创 2018-10-05 21:39:17 · 310 阅读 · 0 评论 -
【背包DP】洛谷P1060 开心的金明 题解
洛谷P1060 开心的金明 题解题目传送门 分析:又是背包问题中大名鼎鼎的金明系列,与普通的背包不同,这道题有了“主件”和“附件”的概念但实际上我们并不需要单独考虑附件,只需要在对主件进行决策的时候同时考虑取附件的情况。那么对于一个主件来说,无非有四种情况:只取主件, 取主件和一个附件(如果存在):,这里f1是a[i]的一个附件 取主件和第二个附件(如果存在):,f...原创 2018-10-04 15:37:05 · 386 阅读 · 0 评论 -
【洛谷P2921】【USACO08DEC】在农场万圣节Trick or Treat on the Farm
题目传送门 分析这很明显是一道图论题,但十分特殊的是每个点都只有一条出边,也就是出度为1,所以这个图只可能出现链和环的组合。比如这样:那么我们就可以想到用dfs搜出一个环之后,对其进行回溯时的赋值首先当一条链和一个环组合时,环中的所有点答案都相同,而链上的点的答案为环的大小(节点个数)加上这个点到环的距离,而这个点到环的距离又正好是前一个回溯过来的链上的点的距离+1,所...原创 2018-09-18 20:42:44 · 240 阅读 · 0 评论 -
【洛谷P3958】【NOIP提高组2017】 奶酪
题目传送门这题很明显可以用并查集,把所有相交的球体都合并成为一条通路,最后枚举判断#include <bits/stdc++.h>#define MAX 1005#define ll long longusing namespace std;/***并查集***/int par[MAX];int find(int x){ if(par[x] == x) ...原创 2018-08-29 17:10:55 · 480 阅读 · 0 评论 -
【题解】导游(宁波小学2008第3题)(关于DFS和剪枝)
题目描述宁波市的中小学生们在镇海中学参加程序设计比赛之余,热情的主办方邀请同学们参观镇海中学内的各处景点,已知镇海中学内共有n处景点。现在有n位该校的学生志愿承担导游和讲解任务。每个学生志愿者对各个景点的熟悉程度是不同的,如何将n位导游分配至n处景点,使得总的熟悉程度最大呢?要求每个景点处都有一个学生导游。输入输入文件daoyou.in中有若干行:第一行只有一个正整数n,表示...原创 2018-08-22 11:25:15 · 1936 阅读 · 0 评论 -
【区间DP】洛谷P1880石子合并题解
【区间DP】洛谷P1880石子合并题解题目传送门 分析典型的区间DP,我们可以建立状态f[i][j]表示将区间[i,j]内的石子合并的最大值。那么我们可以把[i,j]分为[i,k]和[k+1,j](i<=k<j)两个区间,分别合并后求出最大值。那么可以推出状态转移方程:其中s数组是表示前缀和的,提前预处理了区间内的石子合并总分。另外有一个要注意的地方,如...原创 2018-08-22 11:16:24 · 406 阅读 · 1 评论 -
【题解】CF746G New Roads
CF746G New Roads题意 给你一棵ttt层的树,第iii层有a[i]a[i]a[i]个节点,最后需要有kkk个叶子结点,让你构造出一棵符合条件的树。解题思路 我们可以先构造出ttt层,每层只有一个节点,父亲是上一层的节点。那么显然此时剩余的节点数为n−tn-tn−t。剩余所需的非叶子节点的数量为n−t−kn-t-kn−t−k。于是我们可以逐层插入节点,并对这些节点分类讨论。...原创 2019-02-21 10:26:37 · 286 阅读 · 0 评论 -
【题解】CF700B 【Connecting Universities】
CF700B 【Connecting Universities】 我最喜欢码量不大的思维题啦!!! 首先,因为有nnn个点和n−1n-1n−1条边,那么这显然是一棵树,题目要求我们把树上的2k2k2k个点两两配对,使得每一对点的路径距离和最大。 这道题如果从“配对”这个角度思考的话并不容易,因为没有一种显然正确的贪心方法来进行配对。于是我们从边的角度来思考。 对于每一条边,如果想让...原创 2019-02-21 10:29:46 · 378 阅读 · 0 评论 -
【挖坑】【GSS】GSS7:树链剖分中的最大子段和
Can you answer these queries?GSS系列是spoj出品的一套数据结构好毒瘤题,主要以线段树、平衡树和树链剖分为背景,进行了一些操作的魔改,使得难度远超模板题,但对于思维有极大的提升。所以我会选择一些在我能力范围内的题挖坑选讲,构成一个GSS系列。至于剩下那些,等我成为巨佬弄懂了再说吧。GSS7:树链剖分中的最大子段和原题传送门(洛谷)本题前置芝士:GS...原创 2019-03-26 18:45:38 · 748 阅读 · 0 评论 -
【题解】最小路径覆盖方案(最大流求二分图最大匹配)
题意原题传送门思路在解决这道题之前,我们先讲一下用最大流求解二分图最大匹配的做法。如果巨佬您已经熟练掌握了,那完全可以跳过。不过你都这么巨了,怎么会来看我的blog呢我们一般是把每个点拆成两个,分为出点和入点,顾名思义出点连的边都是从他出发,连向其他点;入点连的边都是从其它点出发,连到当前点。然后我们再建立一个超级源点和一个超级汇点,从源点向所有点的出点连边,从所有入点向汇点连边,然后在图...原创 2019-03-22 19:36:38 · 1049 阅读 · 0 评论 -
【挖坑】【GSS系列】GSS4:区间开平方
Can you answer these queries?GSS系列是spoj出品的一套数据结构好毒瘤题,主要以线段树、平衡树和树链剖分为背景,进行了一些操作的魔改,使得难度远超模板题,但对于思维有极大的提升。所以我会选择一些在我能力范围内的题挖坑选讲,构成一个GSS系列。至于剩下那些,等我成为巨佬弄懂了再说吧。GSS4:区间开平方这道题可能是GSS系列中的一个另类吧,因为它并没有涉及...原创 2019-03-19 11:02:25 · 586 阅读 · 0 评论
分享