题解
文章平均质量分 71
cszhpdx
欸嘿
展开
-
CF1633D Make Them Equal 题解
首先分析每一次操作,我们发现这些操作有两个重要的特征:互相独立操作过程中每一个 aia_iai 单调不减由此我们可以分析出,每一个 aia_iai 要么一直操作到 ai=bia_i=b_iai=bi,要么不动,这很像一个背包,考虑如何转化。我们发现对于相同的 bib_ibi,最优操作的步数一定相同(特征 1),令 pip_ipi 表示将 1 变换成 iii 的最少次数,那么此时我们有 nnn 个物品,第 iii 个代价为 pbip_{b_i}pbi,价值为 cic_ici,这就原创 2022-02-03 16:23:38 · 640 阅读 · 0 评论 -
CF1630B Range and Partition
首先看到最小化 y−xy-xy−x 这个玩意,果断二分 y−xy-xy−x,显然假如区间更长合法,那么更短一定也合法,然后再枚举 xxx 进而得到 [x,y][x,y][x,y],接下来的事情就是要判断某一个区间 [x,y][x,y][x,y] 是否合法。我们首先把砍成 kkk 段转化为尽可能地多段,因为如果 ttt 段的分割是合法的,我们我们将最后两个区间合并,这就是 t−1t-1t−1 段了。我们将 aia_iai 重新赋值,如果 ai∈[x,y]a_i \in [x,y]ai∈[x,y] 那么原创 2022-02-03 16:23:06 · 749 阅读 · 0 评论 -
CH0304 IncDec Sequence
[传送门](http://noi-test.zzstep.com/contest/0x00「基本算法」例题/0304 IncDec Sequence)大概题意:给定一个长度为 n(n≤105)n(n≤10^5)n(n≤105) 的数列 {a1,a2,…,an}\{a_1,a_2,…,a_n\}{a1,a2,…,an},每次可以选择一个区间 [l,r][l,r][l,r],使下标在这个区间内的数都加一或者都减一。求至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的原创 2021-10-02 12:10:08 · 78 阅读 · 0 评论 -
U180094 选苹果
官方题解传送门对于 10% 的数据显然爆搜每一个苹果选不选就行了,加不加优化无所谓。这道题说不能相邻,所以考虑用组合数学,当我们选 xxx 个苹果的时候,剩下的有 n−xn-xn−x 个苹果,剩下的每两个之间可以放至多一个苹果,我们把 xxx 随便插到这 n−x+1n-x+1n−x+1 个空里面(包括两端),这时有 Cn−x+1xC_{n-x+1}^xCn−x+1x 种方法,这时我们的答案就是:∑i=1⌊n−12⌋Cn−i+1i\sum_{i=1}^{\lfloor \frac{n-1}{2}原创 2021-09-20 16:24:13 · 63 阅读 · 0 评论 -
P1445 [Violet]樱花
纪念一下,独立做出来蓝色数学题不容易。看到阶乘不自觉地想到递推,然后发现好像不太行,然后突然想起数学书上一题~~(其实是作业)~~,问对于任意正整数 nnn,a,ba,ba,b 满足1n+a+1n+b=1n\dfrac{1}{n+a}+\dfrac{1}{n+b}=\dfrac{1}{n}n+a1+n+b1=n1时 a,ba,ba,b 与 nnn 的关系,显然1n+a+1n+b=1n(n+a)+(n+b)(n+a)(n+b)=1n2n+a+bn2+an+bn+ab=1nn(2n+a+b)=原创 2021-09-09 20:24:42 · 103 阅读 · 0 评论 -
CF242E XOR on Segment
这题其实真的不难,而且氵一道 2000 的在洛谷上紫色的题目真的很爽。这题一上来很容易想到线段树,也就是加法乘法变成了异或,直接维护 xor 不大容易,因为异或的区间和不可以累加,所以这个想法肯定是不行的。但是注意到这是位运算 xor,它一个很重要的性质就是每一位相互独立,而我们的每一位的每次修改无非就是取反,求和,十分好做,于是对于每个整数,考虑转化成这样的问题,也就是把每一位拆开而已,于是我们可以开大约 log2(106)\log_2(10^6)log2(106) 个维护 01 求和的线段树,所原创 2021-08-27 23:33:01 · 143 阅读 · 0 评论 -
CF1562C Rings
这题其实不难,但是样例真的很迷惑,这题最大的难点是抛弃样例。这题和前面几题一样,先考虑特殊情况, 特殊情况容易想到 k=2tk=2^tk=2t,这样也就是多 t 个 0,再特殊一点 k=2k=2k=2,也就是多一个 0,我们发现其实这题最大的限制是 r−l+1≥⌊n2⌋r-l+1\ge \lfloor \frac{n}{2} \rfloorr−l+1≥⌊2n⌋,我们考虑如果 ax=0 & x>⌊n2⌋a_x=0~\&~x\gt \lfloor \frac{n}{原创 2021-08-27 22:43:48 · 59 阅读 · 0 评论 -
CF1562B Scenes From a Memory
首先如果有 1,4,6,8,9 就直接输出就行,然后判定有没有重复的数或者不在第一位的 2,5 ,这些条件又任何一个符合都有明显的答案。剩下的不符合所有条件的串一定会是没有重复的数的,由 2,3,5,7 构成的且 2 或 5 不能不打头的串。显然这个串长度为 2 或 3 ,当 3,7 打头,显然没有办法凑出非质数,题目保证有解,所以 3,7 一定不能打头。2,5 打头,长度为 2 的只有 27,57 ,而长度为 3 的一定是 2,5 打头,后面是 37 或 73 ,因为保证有解,所以不是 27 ,就是原创 2021-08-27 22:42:52 · 109 阅读 · 0 评论 -
CF1562A The Miracle and the Sleeper
这题作为比赛的第一题,感觉稍微比前几次难了一点(虽然也没多难),而且我的代码貌似很短。我们假设已经知道了 a 的值,在不考虑 r 的情况下 b 的值应当是 2a−12a-12a−1 ,我们希望模数 a 尽可能大,最大值显然满足 b=2a−1=rb=2a-1=rb=2a−1=r,a=max(l,⌊r+12⌋)a=\max(l,\lfloor \frac{r+1}{2}\rfloor)a=max(l,⌊2r+1⌋),但是如果这时的 b 大于 r,说明 2l>r2l>r2l>r ,这时 a原创 2021-08-27 22:40:49 · 158 阅读 · 0 评论 -
CF1561D1 Up the Strip (simplified version) 题解
容易想到 fif_ifi 表示走到 iii 的方案数和转移方程(一开始我这个蒟蒻居然还觉着是刷表呢fx=(∑i=x+1nfi)+(∑{fy∣x=⌊yk⌋})f_x=(\sum_{i=x+1}^nf_i)+(\sum\{f_y | x=\lfloor \frac{y}{k} \rfloor\})fx=(i=x+1∑nfi)+(∑{fy∣x=⌊ky⌋})第一项很好求,维护一个后缀和,难点主要是在第二项我们可以枚举 kkk ,不超过 n\sqrt{n}n 个,这时我们的 kkk 固定下来了原创 2021-08-25 13:59:33 · 307 阅读 · 0 评论 -
CF1558A Charmed by the Game
大概题意(本题主要难点小 A 小 B 轮流负责接球发球,已知小 A 赢了 aaa 场,小 B 赢了 bbb 场,求接球手胜利的次数有多少可能,分别是什么解法设ca 为 A 发球的次数cb 为 B 发球的次数AA 为 A 发球 A 赢了的局数AB 为 A 发球 B 赢了的局数BA 为 B 发球 A 赢了的局数BB 为 B 发球 B 赢了的局数显然 AA+AB=ca,BA+BB=cb,AA+BA=a,AB+BB=bAA+AB=ca,BA+BB=cb,AA+BA=a,AB+BB=bA原创 2021-08-25 13:58:20 · 166 阅读 · 0 评论 -
CF1561C Deep Down Below 题解
昨天比赛 ( div.2 )自认为最简单的一题,比 A 还简单,因为至少 A 需要模拟的勇气首先我们发现每个洞穴相互独立,假设对于一个洞穴,有 kkk 个 boss 分别是 a1,a2,…,aka_1,a_2, \dots ,a_ka1,a2,…,ak 假设我们进来的时候 power 是 xxx ,那么打第 iii 个 boss (之前还没死)之前 power 是 x+i−1x+i-1x+i−1 ,也就是如果我们要进入这个山洞,必须对于任意的 1≤i≤n1 \le i \le n1≤i≤n 满足原创 2021-08-25 13:57:06 · 289 阅读 · 1 评论 -
poj 2411 Mondriaan‘s Dream
题目传送门:2411 – Mondriaan’s Dream (poj.org)OpenJudge - 1413:Mondriaan’s Dream这题一上来看数据范围就知道了,不是搜索就是状压 dp ,再加上多组数据,肯定就是状压 dp ,很容易想到 f[i][j]f[i][j]f[i][j] 表示第 i 行状态为 j 时的方案数,因为每一行的状态都只和,接下来就是确定 j因为每一个格子不是被横的方块覆盖就是被竖着的方块铺着,所以很容易想到 j 的 i 位表示是否是被横着铺的,但是我们发现这样没有原创 2021-06-29 19:48:25 · 166 阅读 · 0 评论 -
P1013 进制位
传送门题解里前面几位dalao进制为n-1的证明过程我实在没看懂,自己想了半天终于悟出来的证明在这里写给各位:证:假设不会有进位112那么我们发现2没有对应的表头的位置,也就是没有对应的字母,所以我们扩展表格:12123234而这时3和4又出现了,我们再扩展表格:123412345234563456745678这时又出现了5~8,再扩展还会出现9~原创 2021-06-05 11:05:01 · 93 阅读 · 0 评论 -
P1663 山
这是我人生中第一道独立写出来的蓝题,今天突然想写一篇题解题意选出一个点,使得它与这座“山”上的每一个点的连线都与这座“山”没有交点解法1:暴力解题第一步,考虑暴力暴力怎么写呢?考虑枚举 yyy ,因为题目要求输出与答案的差不超过 0.01 ,所以我们把精度设为 0.01 ,这样暴力:double y=0;while(不符合条件) y+=0.01输出y那么剩下的问题就是怎么判断是否符合条件,我们可以先从下面这张图入手:很明显,y=4y=4y=4 时,蓝色部分的 xxx 是合法的,也就原创 2021-06-05 11:07:14 · 84 阅读 · 0 评论 -
P2258 子矩阵
传送门:P2258 [NOIP2014 普及组] 子矩阵这题上来一看这数据范围,一上来开始就写暴力搜索,先从 n 行里选出 r 行,再从 m 列里选出 c 列,然后等所有都选完之后再生成子矩阵,最后再计算一遍,取最小值,复杂度 O(2n×2m)O(2^n \times 2^m)O(2n×2m) ,由于数据过于水,拿了 60 pts ,代码:#include<cstdio>#include<cstring>#include<iostream>#include<原创 2021-06-05 11:08:07 · 215 阅读 · 2 评论 -
P2732 [USACO3.3]商店购物 Shopping Offers
题目传送门:P2732 [USACO3.3]商店购物 Shopping Offers这道题乍一看,压根看不懂,再看,看懂题了,第三眼,发现是动规,冥思苦想了半天想出来一个特别暴力的办法首先我瞄准了小数据,最多只会有 5 种,所以我决定直接五维 dpf[i][j][k][l][m]f[i][j][k][l][m]f[i][j][k][l][m] 表示在第一个物品有 iii 个,表示在第二个物品有 jjj 个,表示在第三个物品有 kkk 个,表示在第四个物品有 lll 个,表示在第五个物品有 mmm 个,原创 2021-06-05 11:09:07 · 269 阅读 · 0 评论 -
P2737 [USACO4.1]麦香牛块Beef McNuggets
题目传送门:P2737 [USACO4.1]麦香牛块Beef McNuggets简化题意:其实就是给你 nnn 个数,a1a_1a1 到 ana_nan ,对于每个数取任意个,把它们的和放到集合 SSS 中,找出在集合 SSS 中最大的正整数 xxx ,使得 $x \not \in S $这题大概思路就是确定两个范围,设有两数 m, rm,\ rm, r,它们满足:所有的测试点里的答案 ≤m\le m≤m如果凑出来的数有上限,那么 {x∣x∈[r,m],x∈N+}⊆S\{x原创 2021-06-05 11:09:55 · 143 阅读 · 0 评论 -
P3540 [POI2012]SQU-Squarks
题目传送门:P3540 [POI2012]SQU-Squarks题面解释的非常不清楚,总之就是有 nnn 个数,x[]x[]x[],它们两两组合,对每一对求和,放到 a[]a[]a[] 里,此时 a[]a[]a[] 里有 $\frac {n \times (n-1)}{2} $ 个数,现在已知 nnn 和 a[]a[]a[],求 x[]x[]x[] 的解的个数和每一个解然后通过看题目标签仔细观察发现,这题一定可以贪心,那么我们先模拟几个小数据当 n=2n=2n=2这个时候只有 a[1] x原创 2021-06-05 11:11:05 · 81 阅读 · 0 评论 -
P4159 [SCOI2009] 迷路
题目传送门 P4159 [SCOI2009] 迷路如果完全没有思路请移步至 P2233 [HNOI2002]公交车路线如果没学过矩阵乘法可以去P1939【模板】矩阵加速(数列)P3390 【模板】矩阵快速幂看看这两题的题解要是不会快速幂请去 P1226 【模板】快速幂||取余运算然后我们通过 P2233 知道了,对于一个邻接矩阵为 GGG 的,边权只有 0 1 的图,从 iii 走到 jjj 恰好走 TTT 个单位的方案数是 GijTG^T_{ij}GijT,那么考虑把这道题转换成边原创 2021-06-05 11:11:56 · 104 阅读 · 0 评论 -
P5507 机关
题目传送门:P5507 机关看了一遍题解之后发现大家的代码都很长我的思路呢其实也就是双向搜索,题解里也有一位 dalao 写了,但是位运算其实没有必要那么麻烦,没有必要把两个记录状态的数组合并,两个也不会超空间,时间还快一点,相当于用空间换时间接下来是我的思路状态压缩首先是状态的存储问题,有 12 个旋钮,我发现基本上状态压缩有这几种:十进制存,一位一个旋钮,很明显 12 位不能用数组去判重,得用 mapmapmap ,又多了一个 lognlognlogn 的复杂度我也不知道这位兄弟怎么想出原创 2021-06-05 11:12:42 · 190 阅读 · 0 评论 -
poj3417 Network
题目传送门给你一颗树,还有一些别的边,先切除一条树边,然后切除一条非树边,有多少种方法可以切成两个不连通的部分首先对着这棵树,加上一条边后一定会出现环,比如对于某棵树的一部分x 表示非树边,我们发现,在这个环上任意一条树边切除之后显然只能切除那条非树边,而且如果我们再加上别的边显然切除这个环上的一边之后还是只能切除非树边,很容易联想到对于每个向这样的连接 x y 两点的环,这个环上每一条边切除之后都只能切除那条非树边,也就是如果切它就只有一种方案于是我们统计这样的环上边的总数,或者我们可以换一种理原创 2021-06-05 11:14:37 · 61 阅读 · 0 评论