随笔分类 -  题解

题解 P7442 「EZEC-7」维护序列
摘要:分析 刚开始此题被放在了第一道,第一眼我没有算对复杂度,写了一个极易理解的暴力算法,而且还因为看错下标做得更加麻烦,思路是这样的。 for(int i=tot;i>=1;i--){ if(cz[i]==0){ if(x<=mid){ x=2*x-1; } else { x=(x-mid)*2; } 阅读全文
posted @ 2021-08-28 21:11 漠寒· 阅读(43) 评论(0) 推荐(0)
题解 P1831 杠杆数
摘要:分析 看到题的第一反应,存储前面 n 位的值乘坐标,然后暴力检查,然而时间复杂度虽是可的,但没有正确性,我们发现对于同一个值,可能有多种可能性,比如第一位为三,第二位为一和第一位为三,第二位为二以此种方法计算出的值是相同的,但很明显他们对应的方案不一样。 因此我们需要考虑一种对于一个计算出的值,我们 阅读全文
posted @ 2021-08-28 21:10 漠寒· 阅读(71) 评论(0) 推荐(0)
题解 CF1154F Shovels Shop
摘要:分析 题意就是在 n 双鞋里买 k 双,有一些优惠方式可以使你少付一些鞋子的钱,计算最少的花费。 我们发现 k 很小,因此建立在它上面思考,我们又发现买入的鞋子为严格的 k 双,因此这道题就得到了极大的简化。鞋子数我们只需要留下最便宜的 k 双,优惠方案我们只需要留下 x 范围在 k 之内的最优的 阅读全文
posted @ 2021-08-28 21:09 漠寒· 阅读(27) 评论(0) 推荐(0)
题解 P3336 [ZJOI2013]话旧
摘要:分析 首先是对极小值均是0的理解,它的意思即为在每一次函数斜率改为-1后,一定要一直下降到0才可以。 因此我们就可以给方案数另一种理解方式,在1到 n 之间,可以选择多少种不同的函数下降点,使它经过所有的确定点。 这样一来就好分析多了,我们可以将问题转化为每两个定点之间,前一个的方案数可以如何转移到 阅读全文
posted @ 2021-08-28 21:09 漠寒· 阅读(197) 评论(0) 推荐(0)
题解 CF895C Square Subsets
摘要:分析 题意就是对于一个数组,有多少个子集中的各项乘起来为完全平方数,记录个数并取模。 首先观察数据范围,发现数的大小很小,又想到平方数可以进行质因数分解,分解后,每一组相同项的个数都应为偶数。 于是第一步就想到了,因为70内的质数只有19个,于是我们状态压缩,用19位的二进制数,每一位表示对应位置的 阅读全文
posted @ 2021-08-28 21:08 漠寒· 阅读(75) 评论(0) 推荐(0)
题解 P2505 [HAOI2012]道路
摘要:分析 对于图中每两个可形成一条路径的点之间,都会有它们的最短路,题目所求的就是对于给出的 \(m\) 条道路,有多少最短路经过该道路。 可以知道这不是一次搜索就可以做到的,因为它会在搜索过程中不断更改最短路,于是我们考虑在确定起点的情况下,它到各点的最短路经过了哪些路径。 我们以 \(f_i\) 表 阅读全文
posted @ 2021-08-28 21:08 漠寒· 阅读(53) 评论(0) 推荐(0)
题解 UVA11987 Almost Union-Find
摘要:题意 操作1:将两点所在的区间合并。 操作2:将一点移至另一点所在集合内。 操作3:求一点所在区间的元素个数和元素的总和。 分析 并查集的大小以及元素和是很好计算的,在合并时将“认亲”的点的对应值加给它祖先就行了。主要是操作2。 对于一个点单独抽离出来,我们发现是不好弄的,按照常规的方法做的话,如果 阅读全文
posted @ 2021-08-28 21:06 漠寒· 阅读(35) 评论(0) 推荐(0)
题解 SP733 MTWALK - Mountain Walking
摘要:分析 看到题目所求的是一个最大差值,很快想到二分答案,对于一个二分到的 \(mid\),我们枚举满足要求的最小值和最大值,表示我们路径只能经过权值在二者之间的点,这样走一个 \(dfs\),用 \(vis\) 数组判断起点终点是否连通就可以了。 这样二分的正确性也容易证明了,当一个答案可行时,更大的 阅读全文
posted @ 2021-08-28 21:03 漠寒· 阅读(43) 评论(0) 推荐(0)
题解 SP220 PHRASES - Relevant Phrases of Annihilation
摘要:题意 \(T\) 组数据,每组给出 \(n\) 个字符串,求一个最长字符串,满足其在每一个字符串都互不重叠地出现至少两次,输出其长度。 分析 既然是输出长度,很容易就能想到二分答案,二分可能的长度,对于一个已得的答案长度,比它小的长度一定也能满足,因为每一个该长度的串都能提取出更短的相同子串,因此二 阅读全文
posted @ 2021-08-28 21:03 漠寒· 阅读(41) 评论(0) 推荐(0)
题解 P5048 [Ynoi2019 模拟赛] Yuno loves sqrt technology III
摘要:分析 首先,需要注意求的是众数出现的次数,而不是众数是哪个(先开始看错写题一直报运行错误),对于我的做法而言,相对蒲公英反而少了很多码量。 可以先去做P4168蒲公英吧,数据范围小了很多,虽然感觉两者无太大区别。 首先将整个序列分为根号块,用 \(f[i][j]\) 表示从第 \(i\) 块到第 \ 阅读全文
posted @ 2021-07-21 16:45 漠寒· 阅读(32) 评论(0) 推荐(0)
题解 CF760B Frodo and pillows
摘要:Link 分析 就是一道二分答案的题,枚举 \(Frodo\) 能拥有的枕头数,在确定该数后,运用贪心思想,其他人分得的枕头数,应该以他为中心,向四周递减,才能尽可能地少用枕头来满足这个要求,根据两个要点来计算,相邻之差不能大于等于二,因此向左和向右皆为一个公差为1的等差数列,第二个要点就是每人至少 阅读全文
posted @ 2021-06-25 21:12 漠寒· 阅读(139) 评论(0) 推荐(0)
题解 CF165E Compatible Numbers
摘要:分析 对于 \(a\&b=0\),我们发现,将 \(b\) 与 \(2^{22}-1\) 异或的值,它与 \(a\) 取并的值仍为 \(a\),于是我们发现我们所求的就是 \(a_i\oplus2^{22}-1\&a_j=a_j\),这个思路就显而易见的是类似于高维前缀和。 我们发现对于如果 \(i 阅读全文
posted @ 2021-06-25 17:20 漠寒· 阅读(69) 评论(0) 推荐(0)
题解 洛谷P6413 [COCI2008-2009#3] NAJKRACI
摘要:链接 分析 计算出最短路后,一条边是最短路的一部分,当且仅当起点的 \(f\) 值加上该边边权等于终点的 \(f\) 值,所以跑最短路后,对 \(m\) 条边进行判定,满足该条件的加入最短路图。 加入后进行拓扑排序,计算以该边作为终点的最短路个数 \(cntz\),和该边作为起点的最短路 \(cnt 阅读全文
posted @ 2021-06-23 21:51 漠寒· 阅读(94) 评论(0) 推荐(0)