
CodeForces上分
文章平均质量分 71
Frozen_Guardian
已退役菜鸡Acmer
展开
-
CodeForces - 1607D Blue-Red Permutation(贪心)
题目链接:点击查看题目大意:给出一个长度为 nnn 的数列,每个数字有一个颜色,如果是蓝色,每次操作则可以减一;如果是红色,每次操作则可以加一。问有限次操作后,能否将数组变为一个长度为 nnn 的排列。题目分析:第一次做的时候用 multiset 乱搞过了,但感觉不算正解,看了题解后发现这不就是经典的一个贪心套路:区间和数字的最大匹配问题。先将区间按左端点排序,再将数字从小到大排序,然后用优先队列控制区间右端点是否过期就可以了。代码:// Problem: D. Blue-Red Permuta原创 2021-11-11 21:22:25 · 634 阅读 · 0 评论 -
CodeForces - 1593G Changing Brackets(思维)
题目链接:点击查看题目大意:给出一个长度为 nnn 的括号序列,其中包含了 {(,),[,]}\{(,),[,]\}{(,),[,]} 四种括号,现在可以进行两种操作:将括号反转,代价为 000,比如 [[[ 变为 ]]],))) 变为 (((将中括号变为小括号,代价为 111,比如 [[[ 变成 (((给出 qqq 次询问,每次询问需要回答使得区间 [l,r][l,r][l,r] 中的括号序列合法的最小代价。题目分析:因为反转括号是没有代价的,所以只需要关心括号的个数即可。手玩一下样例不难原创 2021-11-10 22:07:30 · 604 阅读 · 0 评论 -
CodeForces - 1579G Minimal Coverage(dp)
题目链接:点击查看题目大意:给出 nnn 个长度不同的木棍。设第 i−1i-1i−1 次放置木棍后的终点为 xxx,那么第 iii 个木棍有且仅有两种放置方法:放到 [x+1,x+a[i]][x+1,x+a[i]][x+1,x+a[i]],终点变为 x+a[i]x+a[i]x+a[i]放到 [x−a[i],x−1][x-a[i],x-1][x−a[i],x−1],终点变为 x−a[i]x-a[i]x−a[i]问如何放置可以使得被覆盖的端点数最少题目分析:读懂题后不难想到 2n2^n2n 去暴力原创 2021-11-08 18:32:27 · 401 阅读 · 0 评论 -
CodeForces - 1567C Carrying Conundrum(思维/状压)
题目链接:点击查看题目大意:规定加法中使用隔项进位,问给定的 nnn 有多少种方案可以通过 “隔项进位加法” 得到题目分析:隔项进位意味着奇偶位置位置的数字互不影响,所以将两个数字拿出来,设为 aaa 和 bbb。不难看出组合出某个数字 xxx 的方案为 x+1x+1x+1,即 {0+(x),1+(x−1),⋯ ,x+(0)}\{0+(x),1+(x-1),\cdots,x+(0)\}{0+(x),1+(x−1),⋯,x+(0)}。所以总方案数为 (a+1)∗(b+1)(a+1)*(b+1)(a+1)∗原创 2021-09-06 20:28:49 · 405 阅读 · 2 评论 -
CodeForces - 1562E Rescue Niwen!(dp)
题目链接:点击查看题目大意:给出一个长度为 nnn 的字符串 sss,将其子串按顺序展开成序列,即 {s1,s1s2,⋯ ,s1s2…sn,s2,s2s3,s2s3…sn,s3,s3s4,⋯ ,sn−1sn,sn}\{s_1,s_1s_2,\cdots ,s_1 s_2 \ldots s_n,s_2,s_2 s_3, s_2 s_3\ldots s_n,s_3,s_3 s_4,\cdots,s_{n-1}s_n,s_n\}{s1,s1s2,⋯,s1s2…sn,s2,s2s3,s2s3原创 2021-08-27 17:02:24 · 349 阅读 · 0 评论 -
CodeForces - 1562D2 Two Hundred Twenty One (hard version)(二分)
题目链接:点击查看题目大意:定义一个前缀和公式 a1−a2+a3−a4+…=∑i=1n(−1)i−1⋅aia_1 - a_2 + a_3 - a_4 + \ldots=\sum\limits_{i=1}^n (-1)^{i-1} \cdot a_ia1−a2+a3−a4+…=i=1∑n(−1)i−1⋅ai,再给出一个长度为 nnn 的序列,只包含 {−1,1}\{-1,1\}{−1,1},然后 qqq 次询问,每次需要回答最少删除多少个数字可以使得区间 [l,r][l,r][l,r] 的前缀和原创 2021-08-27 14:47:32 · 336 阅读 · 0 评论 -
CodeForces - 1561E Bottom-Tier Reversals(构造)
题目链接:点击查看题目大意:给出一个长度为 nnn 的排列,每次操作可以选择一个奇数长度的前缀然后反转,需要构造一种方案,使得在不超过 5n2\frac{5n}{2}25n 次操作后使得序列有序题目分析:挺有意思的一道构造题,手玩几组样例后不难发现每个位置在反转后,下标的奇偶性是不发生改变的,所以可以大胆猜测如果奇偶性满足条件的情况下,是一定可以构造出答案的。因为每次反转的是前缀,反过来想后缀是不会受到影响的,所以不妨倒着构造,先将 nnn 的位置放好,再放 n−1n-1n−1 如此。又因为每次操原创 2021-08-25 21:25:07 · 234 阅读 · 0 评论 -
CodeForces - 1560F2 Nearest Beautiful Number (hard version)(二分+数位dp)
题目链接:点击查看题目大意:给出一个十进制数字 nnn 和一个约束 kkk,问大于等于 nnn 且满足不同的数位个数小于等于 kkk 的最小的数字是多少题目分析:自己写的贪心太丑了,就不放上来丢人了偷的杨大佬的trick,对于某个数字 xxx,如果可以快速求出区间 [1,x][1,x][1,x] 中有多少个数字满足不同的数位个数小于等于 kkk 的话,显然这个答案是具有单调性的考虑二分答案,然后用数位dp快速求解这个过程,dp[pos][state][k]dp[pos][state][k]dp[po原创 2021-08-19 22:59:19 · 256 阅读 · 4 评论 -
CodeForces - 1559D2 Mocha and Diana (Hard Version)(思维)
题目链接:点击查看题目大意:给出两棵森林,每次可以同时在两个森林中增加同一条边,问最多可以增加多少条边,使得两个森林仍然还是森林题目分析:结论参考至:https://blog.youkuaiyun.com/RunningBeef/article/details/119738571?utm_source=app&app_version=4.13.0&code=app_1562916241&uLinkId=usr1mkqgl919blen首先对于所有的点尝试与点 111 建边,此后考虑除了点原创 2021-08-17 20:09:30 · 362 阅读 · 3 评论 -
CodeForces - 1557D Ezzat and Grid(线段树+dp)
题目链接:点击查看题目大意:给出 nnn 个 010101 串,现在问最少需要删掉多少个串,才能使得剩下的串拼起来是连通的规定两个 010101 串是连通的,当且仅当存在至少一列,在两个串中都为 111题目分析:正难则反,题目要求删除最少,那么我们思考如何使得保留下来的串最多。考虑 dp[i]dp[i]dp[i] 为以第 iii 个序列为结尾的,可以保留的最多的串的个数,模仿最长不下降子序列的思路,dp[i]=dp[j]+1dp[i]=dp[j]+1dp[i]=dp[j]+1,当且仅当串 iii 和串原创 2021-08-11 16:08:58 · 265 阅读 · 0 评论 -
CodeForces - 1549F1 Gregor and the Odd Cows (Easy)(几何+数论)
题目链接:点击查看题目大意:给出二维平面上的 nnn 个点,任意选择出三个点可以构成一个三角形,现在问满足下面条件的三角形的个数:三角形面积为整数三角形包含的(不包括边界)整数点为奇数其中所有坐标点的 xxx 和 yyy 都是偶数题目分析:因为所有坐标点都是偶数,所以先猜一波任意三个点都是满足第一个条件的,也就是围成的三角形面积一定是偶数。所以现在问题就转换为了,如何求解满足第二个条件的三角形的个数。赛中经队友提醒,得知了“皮克定理”这一关键的结论,即 S=a+b2−1S=a+\frac{b原创 2021-08-02 20:25:11 · 234 阅读 · 0 评论 -
CodeForces - 1530E Minimax(思维+构造)
题目链接:点击查看题目大意:规定 f(i)f(i)f(i) 为 KMPKMPKMP 算法中的 nextnextnext 数组,现在给出一个字符串 sss,需要将 sss 重新排列,使得在 maxi=1n{f(i)}\max\limits_{i=1}^{n}\{f(i)\}i=1maxn{f(i)} 尽量小的前提下,字典序最小题目分析:多写几组样例不难发现,除了所有字符都相同的情况下,都是可以构造出答案等于 111 的序列的,现在问题就是如何让字典序尽量小分类讨论一下:只有一种字符:直接输出大原创 2021-07-28 18:38:21 · 240 阅读 · 0 评论 -
CodeForces - 1551F Equidistant Vertices(暴力+dp)
题目链接:点击查看题目大意:给出一棵 nnn 个节点组成的树,问选出 kkk 个节点满足相互之间距离相等的方案数有多少题目分析:n=100n=100n=100,感觉数据范围越小的题目越难发现 tag。补完这个题目后发现每个知识点自己都已经掌握了,但是组合起来就分析不出来,分析题目的能力还是有所欠缺回到本题,首先特判 k==2k==2k==2 的情况,样例也给出了提示。需要思考出的一个思维点就是,kkk 个节点相互之间的距离相等,等价于存在一个中间点 xxx,满足任意两个节点 dis(ai,x)=di原创 2021-07-25 10:55:40 · 459 阅读 · 0 评论 -
CodeForces - 1551E Fixed Points(dp)
题目链接:点击查看题目大意:给出一个长度为 nnn 的序列,需要求出删掉最少的数字,使得剩下的数字至少有 kkk 个位置满足 a[i]=ia[i]=ia[i]=i 成立题目分析:看完数据范围不难想到 n2n^2n2 的 dp,然后转移的话就是枚举每个位置是否删除,一开始是想 dp[i][j]dp[i][j]dp[i][j] 表示到了第 iii 个位置,已经有 jjj 个数满足条件的最小操作数,答案自然就是 dp[n][k]dp[n][k]dp[n][k] 了,但是不好转移,于是换种状态:dp[i][j]原创 2021-07-24 10:59:27 · 273 阅读 · 0 评论 -
CodeForces - 1553F Pairwise Modulo(数论+树状数组)
题目链接:点击查看题目大意:给出一个长度为 nnn 的序列,求 pk=∑1≤i,j≤kai mod ajp_k = \sum_{1 \le i, j \le k} a_i \bmod a_jpk=∑1≤i,j≤kaimodaj题目分析:直接求解比较困难,需要对模型进行两步转换:首先取模运算,等价于 x−x∗⌊yx⌋x-x*\lfloor \frac{y}{x} \rfloorx−x∗⌊xy⌋其次给原式子中的 i,ji,ji,j 规定一个先后顺序,记 sk=∑1≤i,j≤k,i>jai原创 2021-07-23 10:21:25 · 600 阅读 · 0 评论 -
CodeForces - 1553E Permutation Shift(暴力+置换群求环)
题目链接:点击查看题目大意:假设初始时的数组为 [1,2,3,...,n][1,2,3,...,n][1,2,3,...,n],同时 kkk 为偏移量,则原数组会循环右移 kkk 个单位,假设 k=3,n=5k=3,n=5k=3,n=5,则偏移后的数组为 [3,4,5,1,2][3,4,5,1,2][3,4,5,1,2]现在给出一个数组,问能否通过至多 mmm 次交换,使得其变成偏移 kkk 个单位后的数组,如果可以的话,哪些 kkk 是符合条件的题目分析:假设 kkk 是固定的,就变成了经典的置换群原创 2021-07-23 09:19:30 · 366 阅读 · 0 评论 -
CodeForces - 1476E Pattern Matching(字典树+拓扑)
题目链接:点击查看题目大意:给出 nnn 个模式串和 mmm 个匹配串,题目要求输出一种模式串的排列方式,使得 mmm 个模式串从头开始匹配的话,可以匹配到相应的模式串模式串的长度不超过 444,两两互不相同,含有通配符 “_”题目分析:一开始想的是对模式串状压,模式串的每个位置都有 262626 种情况,一个模式串可以匹配 4264^{26}426 个匹配串,可以预处理哈希,但是后续的处理不太会快速建图,遂放弃看了题解后发现可以反过来想,每个匹配串若想匹配模式串,那么每个位置要么匹配原字符,要么匹原创 2021-07-21 08:31:16 · 229 阅读 · 0 评论 -
CodeForces - 1550E Stringforces(二分+状压dp)
题目链接:点击查看题目大意:给出一个长度为 nnn 的字符串,只包含前 kkk 个小写字母以及通配符 ???,现在可以将通配符替换成任意的前 kkk 个字母中的一个。设 f[i]f[i]f[i] 为第 iii 个字母在字符串中,最长的连续子段的长度,现在要求所有 f[i]f[i]f[i] 中最小值的最大值题目分析:读完题一下子根据复杂度把正解分析出来了,可是怎么也没办法往 dpdpdp 上去靠。因为 k≤17k\le 17k≤17,又因为 217≈2e52^{17}≈2e5217≈2e5,所以不难想到二原创 2021-07-15 12:01:23 · 494 阅读 · 0 评论 -
CodeForces - 1481E Sorting Books(贪心+dp)
题目链接:点击查看题目大意:给出一个长度为 nnn 的序列,每次操作可以将任意一本书放到序列的末尾,问最少需要操作多少次,才能使得相同的数字挨在一起题目分析:不难看出,对每个位置的数都操作一次,是肯定能满足条件的,现在我们的目标是如何求得最优解我们需要先转换一下模型,题目要求操作最少,我们可以转换为求哪些位置是不需要移动的。这样将剩下的位置按照一定次序进行操作,一定是可以达到目标的对于某个数字 xxx 而言,设 l[x]l[x]l[x] 和 r[x]r[x]r[x] 分别为 xxx 在原序列中第一次原创 2021-07-14 15:26:00 · 228 阅读 · 0 评论 -
CodeForces - 1480D2 Painting the Array II(dp)
题目链接:点击查看题目大意:给出一个长度为 nnn 的序列,现在要求拆分成两个子序列,使得两个子序列的贡献之和最 小。对于一个序列的贡献就是,去掉相邻且相同的字母后的长度,即 ∑i=1n[a[i]!=a[i−1]]\sum_{i=1}^{n}[a[i]!=a[i-1]]∑i=1n[a[i]!=a[i−1]],其中 a[0]=0a[0]=0a[0]=0。题目分析:本题有贪心解法,参考 CodeForces - 1480D1,只需要将规则三的 last[v1]last[v1]last[v1] 和 last原创 2021-07-14 09:18:07 · 216 阅读 · 0 评论 -
CodeForces - 1480D1 Painting the Array I(贪心)
题目链接:点击查看题目大意:给出一个长度为 nnn 的序列,现在要求拆分成两个子序列,使得两个子序列的贡献之和最大。对于一个序列的贡献就是,去掉相邻且相同的字母后的长度,即 ∑i=1n[a[i]!=a[i−1]]\sum_{i=1}^{n}[a[i]!=a[i-1]]∑i=1n[a[i]!=a[i−1]],其中 a[0]=0a[0]=0a[0]=0。题目分析:首先预处理出对于每个位置 iii 后首次出现 aia_iai 的位置,即为 last[i]last[i]last[i],然后按照三个规则贪心即原创 2021-07-14 00:26:24 · 178 阅读 · 0 评论 -
CodeForces - 1480C Searching Local Minimum(交互+二分)
题目链接:点击查看题目大意:给出一个长度为 nnn 的排列,需要找出一个“局部最小值”,所谓“局部最小值”就是对于某个 iii 来说,满足 ai<ai−1a_i<a_{i-1}ai<ai−1 且 ai<ai+1a_i<a_{i+1}ai<ai+1,更具体的, a0=an+1=infa_0=a_{n+1}=infa0=an+1=inf可以询问不超过 100100100 次,每次可以询问一个位置的值题目分析:挺有意思的一道二分的变形,我们可以从 a0=an+原创 2021-07-14 00:08:40 · 220 阅读 · 0 评论 -
CodeForces - 1543D2 RPD and Rap Sheet (Hard Version)(交互+模拟)
题目链接:点击查看题目大意:交互题猜密码,设原密码为 xxx,猜的密码为 yyy,如果没猜到,密码会自适应变成 zzz,满足 x⊕z=yx \oplus z=yx⊕z=y ,最多猜 nnn 次,对于本题而言,所有数字是在 kkk 进制下进行的题目分析:相对于 easyeasyeasy 版本而言,当异或推广到 kkk 进制时,就不存在自反性了,所以本题还是要稍微推一下公式找找共性这里的异或就不能称之为异或了,下文中,⊕\oplus⊕ 将视为 “k进制不进位加法”,同样对应一个 ⊖\ominus⊖ 为原创 2021-07-13 19:06:52 · 235 阅读 · 0 评论 -
CodeForces - 1543D1 RPD and Rap Sheet (Easy Version)(异或+交互)
题目链接:点击查看题目大意:交互题猜密码,设原密码为 xxx,猜的密码为 yyy,如果没猜到,密码会自适应变成 x⊕yx \oplus yx⊕y ,最多猜 nnn 次题目分析:一开始想按位拆分的,可惜没什么思路,偏偏忘记了异或运算最重要的一个性质,就是它的自反性那么我们就假设每次密码都不变,然后挨个猜不就行了吗?假设我们已经尝试过的询问的异或和为 sumsumsum,即 sum=q1⊕q2⊕...⊕qksum=q_1 \oplus q_2 \oplus ... \oplus q_ksum=q1⊕原创 2021-07-13 00:05:32 · 286 阅读 · 0 评论 -
CodeForces - 1547G How Many Paths?(强联通缩点+拓扑)
题目链接:点击查看题目大意:给出一张有向图,无重边,有环,现在需要判断每个点和点 111 的关系:000:点 111 无法到达点 uuu111:点 111 到点 uuu 有且仅有一条路径222:点 111 到点 uuu 有大于一条路径,但是路径数是有限的−1-1−1:点 111 到点 uuu 的路径数是无限的题目分析:直接强联通缩点将原图转换成一个 DAGDAGDAG,然后直接拓扑就可以了,边拓扑边转移 dpdpdp,也就是答案,dpdpdp 的方程自己分成 4∗4=164*4=164∗4=原创 2021-07-12 19:17:11 · 611 阅读 · 0 评论 -
CodeForces - 1547F Array Stabilization (GCD version)(ST表+二分)
题目链接:点击查看题目大意:给出一个长度为 nnn 的数组 aaa,下标从 000 开始,每次操作分为两个步骤:构建出数组 bbb,有 bi=gcd(ai,a(i+1)mod n)b_i=gcd(a_i,a_{(i+1)\mod n})bi=gcd(ai,a(i+1)modn)用数组 bbb 覆盖数组 aaa问至少需要操作多少次,才能使得数组 aaa 的每个元素都相等题目分析:方便起见,下文中的下标 (i+1)mod n(i+1)\mod n(i+1)modn 统一用 i+1i+1原创 2021-07-12 18:46:27 · 335 阅读 · 0 评论 -
CodeForces - 1539F Strange Array(线段树区间合并)
题目链接:点击查看题目大意:给出一个长度为 nnn 的序列,规定位置 iii 的贡献是:设 x=a[i]x=a[i]x=a[i],选择一个包含 iii 的区间 [l,r][l,r][l,r],将其中的数排序后,使得中位数和 xxx 之间的距离的最大值。题目要求输出 nnn 个位置的答案题目分析:设 xxx 为中位数,将大于 xxx 的位置视为 111,小于 xxx 的位置视为 000 ,然后求最长连续子段和,是解决中位数问题经典模型。对于本题而言,假设只需要询问一个位置的话,可以从该位置向左向右扩展原创 2021-06-20 23:19:47 · 288 阅读 · 0 评论 -
CodeForces - 1537E2 Erase and Extend (Hard Version)(扩展KMP-比较两个前缀无限循环后的字典序大小)
题目链接:点击查看题目大意:给出一个长度为 nnn 的字符串 sss,现在可以执行两种操作,构造一个长度为 mmm 的字符串使得字典序最小:删除掉末尾的一个字符将字符串复制一遍并加到末尾(下文我们称之为自增)题目分析:猜结论+暴力通过 E1E1E1 后应该不难发现,答案一定是字符串 sss 的某个前缀,循环后取前 mmm 位作为答案洛谷有个大神证明了贪心的正确性,这里不多赘述,写此博客是想记录一下 jianglyjianglyjiangly 大神的结论:ainf<binf<=&g原创 2021-06-20 16:15:42 · 408 阅读 · 0 评论 -
CodeForces - 1534E Lost Array(bfs+交互)
题目链接:点击查看题目大意:初始时给出一个长度为 nnn 的序列,每次可以询问 kkk 个位置的异或和,现在需要以最少的询问获得整个序列的异或和题目分析:因为是异或,我们只关心每个位置被询问的次数是奇数还是偶数,不妨设置一个集合,将询问次数为奇数次数的位置都放进来那么我们初始时的状态是“集合大小为 000”,目标状态是“集合大小为 nnn”,可以通过 bfsbfsbfs 去扩展,对于某个状态 xxx 来说,假设我们需要选择 jjj 个集合内的数,那么自然需要选择 k−jk-jk−j 个集合外的数,集合原创 2021-06-18 20:53:35 · 255 阅读 · 0 评论 -
CodeForces - 1538G Gift Set(二分)
题目链接:点击查看题目大意:给出 a,b,x,ya,b,x,ya,b,x,y,分别表示有 aaa 个蓝色糖果和 bbb 和红色糖果,现在有两种打包方式:xxx 个蓝色糖果和 yyy 个红色糖果yyy 个蓝色糖果和 xxx 个红色糖果问最多能打包多少袋糖果题目分析:赛场上写了个三分死活过不去,死后把三分的范围改成 100010001000 就过了,然后第二天睡了一觉起来又被 hackhackhack 了,神奇假设需要 t1t_1t1 种第一种打包方式,需要 t2t_2t2 种第二种打包方式原创 2021-06-14 17:34:42 · 445 阅读 · 1 评论 -
CodeForces - 1485F Copy or Prefix Sum(dp)
题目链接:点击查看题目大意:给出数组 bbb,问可以构造出多少种满足条件的数组 aaa,规定数组 aaa 和数组 bbb 的关系如下:bi=aib_i = a_ibi=ai orbi=∑j=1iajb_i = \sum_{j=1}^{i} a_jbi=∑j=1iaj题目分析:乍一看是个计数问题,因为对于每个位置,aia_iai 都有两种选择,所以答案将会是 2n2^n2n 级别的,但是有些时候会重复计数,观察当 (∑j=1i−1aj)=0(\sum_{j=1}^{i-1} a_j)=原创 2021-06-14 13:56:16 · 208 阅读 · 0 评论 -
CodeForces - 1485E Move and Swap(树形dp)
题目链接:点击查看题目大意:给出一棵有根树,每个节点都有权值,满足所有叶子结点到根节点的距离相同,初始时在根节点有两个硬币,分别是红色和蓝色,每次可以执行如下操作:将红色硬币移动到任意一个子节点将蓝色硬币移动到下一层的任意一个节点(可选)交换红色硬币和蓝色硬币本次操作的贡献是红色硬币和蓝色硬币点权之差的绝对值问如何移动可以使得贡献之和最大题目分析:...原创 2021-06-14 12:25:03 · 224 阅读 · 0 评论 -
CodeForces - 1486F Pairs of Paths(树上计数+容斥)
题目链接:点击查看题目大意:给出一棵 nnn 个点的树,再给出 mmm 条路径,现在问有多少个路径对 (x,y)(x,y)(x,y),满足第 xxx 条路径和第 yyy 条路径有且仅有一个交点题目分析:参考至大佬博客:https://www.cnblogs.com/syksykCCC/p/CF1486F.html再借个图。。(侵权删)本题需要求的路径只有可能是上述两种情况,第一种是 LCALCALCA 相同,第二种是 LCALCALCA 不同,不过总而言之都需要利用 LCALCALCA 来辅助计数原创 2021-06-10 16:46:43 · 368 阅读 · 0 评论 -
CodeForces - 1486E Paired Payment(分层图最短路)
题目链接:点击查看题目大意:给出一个 nnn 个点 mmm 条边组成的带权无向图,规定每次只能走两条边,假设走的两条边为 a−>b−>ca->b->ca−>b−>c,那么花费的权值为 (wab+wbc)2(w_{ab}+w_{bc})^2(wab+wbc)2,问从点 111 到 nnn 个点的最短路分别是多少,如果不可达输出 −1-1−1题目分析:读题的时候注意到了 www 的上限只有 505050,本来以为只是限制答案不爆 intintint 的,结果说是用来建原创 2021-06-10 16:10:03 · 289 阅读 · 0 评论 -
CodeForces - 1486D Max Median(二分+最长连续子段和)
题目链接:点击查看题目大意:给出一个长度为 nnn 的数列,现在从长度至少为 kkk 的连续子段中,找到最大的中位数题目分析:做过平均数的模型:POJ - 2018 Best Cow Fences将平均数换成中位数该如何去考虑呢,现在问题转换为了,枚举 xxx 作为中位数,该如何 checkcheckcheck 序列是否合法考虑若一个数想要成为中位数,则至少有一半及以上的数比他小才行,那么我们如果将比 xxx 小的数视为 −1-1−1 ,大于等于 xxx 的数视为 111 会怎么样呢?不难发现,如果原创 2021-06-09 16:46:15 · 329 阅读 · 0 评论 -
CodeForces - 1486C2 Guessing the Greatest (hard version)(二分+交互)
题目链接:点击查看题目分析:给出一个长度为 nnn 的序列,现在可以进行最多 202020 次查询,每次查询可以询问区间 [l,r][l,r][l,r] 中次大值的位置,现在要求在查询后输出最大值的位置题目分析:C1C1C1 的 404040 次查询是比较简单的二分,就不多说了,关于本题,个人感觉更像是一道思维偏重的构造题,直接说做法吧可以先利用一次查询,询问 [1,n][1,n][1,n] 的次大值位置,记为 ppp再用一次查询,询问最大值是在 [1,p−1][1,p-1][1,p−1] 还是 [原创 2021-06-09 16:25:31 · 186 阅读 · 0 评论 -
CodeForces - 1486B Eastern Exhibition(二维中位数)
题目链接:点击查看题目大意:给出二维平面上的 nnn 个点,现在需要选择任意一个点满足到所有点的距离最小,问这样的点有几个题目分析:如果压成一维的话,那就是一个裸的中位数问题了,只是升到了二维而已一维的模型:CH - 0501 货仓选址代码:// Problem: B. Eastern Exhibition// Contest: Codeforces - Codeforces Round #703 (Div. 2)// URL: https://codeforces.com/contest/1原创 2021-06-09 16:18:46 · 259 阅读 · 0 评论 -
CodeForces - 1535E Gold Transfer(树上倍增+交互)
题目链接:点击查看题目大意:给出一棵初始时只有一个点的树,每个点都有两个值:ai,cia_i,c_iai,ci,分别代表黄金的个数和单价。需要执行 mmm 次操作,每次操作分为两种类型:1 pi ai ci1\ p_i\ a_i\ c_i1 pi ai ci添加一个新点 iii,pip_ipi 为其父节点,ai,cia_i,c_iai,ci 如上一段所述,保证 ci>cpic_i>c_{p_i}ci>cpi原创 2021-06-06 16:02:03 · 315 阅读 · 0 评论 -
CodeForces - 1535C Unstable String(思维)
题目链接:点击查看题目大意:规定一个字符串将问号都替换成 000 或 111 后满足 010101 交替的话,该字符串是合法的,现在给出一个长度为 nnn 的字符串,求合法子串的个数题目分析:两种思路,第一种也是比赛里想到的,不太会实现细节,就是尺取每两个合法 010101 段,然后对两端连续的问号段容斥去重,个人感觉比较难写考虑子串就是每个前缀的所有后缀,所以枚举点 iii 作为每个前缀 s[1:i]s[1:i]s[1:i],找到其合法的最长的后缀所代表的左端点 lll,使得 [l,i][l,i][原创 2021-06-06 15:50:41 · 479 阅读 · 2 评论 -
CodeForces - 1491E Fib-tree(模拟)
题目链接:点击查看题目大意:给出一棵树,问是否为斐波那契树。斐波那契树的定义是,树的大小为斐波那契数列的其中一项,且可以通过删除掉一条边使其拆分的两个子树也为斐波那契树题目分析:需要观察到,大小为 fibifib_ifibi 的树,分解成两个子树后,如果合法,那么需要分解成两个大小分别为 fibi−1fib_{i-1}fibi−1 和 fibi−2fib_{i-2}fibi−2 的子树所以直接模拟就好了,初始时记得判断一下 nnn 是否为斐波那契项,然后每次用树形 dpdpdp 求一下子树的大小原创 2021-06-04 11:56:58 · 258 阅读 · 2 评论