![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
思维
文章平均质量分 72
YB Lin
这个作者很懒,什么都没留下…
展开
-
Codeforces Beta Round #11 B. Jumping Jack 思维
文章目录题意:思路:传送门题意:初始在000点,第iii次跳跃可以跳iii的距离,可以选择向右或者向左跳,求最少多少次可以跳到xxx点。−1e9≤x≤1e9-1e9\le x\le 1e9−1e9≤x≤1e9思路:我们贪心的加,一直到sum>nsum>nsum>n,假设此时sum−nsum-nsum−n是偶数,那么我们可以将第sum−n2\frac{sum-n}{2}2sum−n步向反方向跳。让后就做完了。#include<bits/stdc++.h>usi原创 2022-03-13 22:14:05 · 337 阅读 · 0 评论 -
CF 1635 D. Infinite Set 思维 + 二进制
文章目录题意思路传送门题意给你一个集合SSS,初始集合内含有nnn个数,让后按照一下三个规则无限的向集合中添加数:对于所有的1≤i≤n,x=ai1\le i\le n,x=a_i1≤i≤n,x=ai都在集合中。对于所有的x=2y+1,y∈Sx=2y+1,y\in Sx=2y+1,y∈S,都可以将xxx加入集合。对于所有的x=4y,y∈Sx=4y,y\in Sx=4y,y∈S都可以将x加入集合。问集合中小于2p2^p2p的数有多少个,对1e9+71e9+71e9+7取模。1≤n,p≤2e原创 2022-02-21 09:51:35 · 496 阅读 · 0 评论 -
P6282 [USACO20OPEN] Cereal S 思维
传送门文章目录目录:题意:思路:目录:题意:你有nnn头奶牛,mmm中不同种类的麦片,每个麦片只有一箱,给你每个奶牛第一和第二喜欢的麦片,奶牛会先看第一喜欢的是否有,有的话直接拿走,否则看第二喜欢的是否有,有的话直接拿走,否则一箱不拿。现在问题是奶牛排队领取,对于每个0≤i≤N−10\le i\le N-10≤i≤N−1,求如果从队伍前面移除前iii头奶牛,有多少奶牛会取走一箱麦片。1≤n,m≤1e51\le n,m\le 1e51≤n,m≤1e5思路:第一反应是倒着考虑,考虑每加入一个奶牛原创 2022-01-30 15:48:59 · 742 阅读 · 0 评论 -
CF 1631 D. Range and Partition 尺取 + 前缀和
传送门文章目录目录:题意:思路:目录:题意:给你一个长度为nnn的数组aaa以及kkk,让你选择一个值域[x,y][x,y][x,y],满足能将该数组分成连续的kkk段并且每段中值域在[x,y][x,y][x,y]内的个数严格大于不在其范围内的数的个数,要求你给出[x,y][x,y][x,y]并且让y−xy-xy−x最小,让后给出分段的方案。1≤k≤n≤2e5,1≤ai≤n1\le k\le n\le 2e5,1\le a_i\le n1≤k≤n≤2e5,1≤ai≤n思路:一开始想错了,二分原创 2022-01-29 14:10:43 · 687 阅读 · 2 评论 -
Harbour.Space Scholarship Contest 2021-2022 F. Pairwise Modulo 逆向思维 + 树状数组
传送门文章目录题意思路:题意给定一个不同数组成的序列aaa,定义pkp_kpk为pk=∑i=1k∑j=1kai mod ajp_k=\sum_{i=1}^k\sum_{j=1}^ka_i\bmod a_jpk=∑i=1k∑j=1kaimodaj,让你对于每个i∈[1,n]i\in [1,n]i∈[1,n]求出pip_ipi。2≤n≤2e5,1≤ai≤3e52\le n\le 2e5,1\le a_i\le 3e52≤n≤2e5,1≤ai≤3e5思路:考虑每次新增了什么,不难发现从原创 2021-10-06 16:35:43 · 137 阅读 · 0 评论 -
Harbour.Space Scholarship Contest 2021-2022 E. Permutation Shift 思维 + 剪枝
传送门文章目录题意:思路:题意:给你一个初始排列[1,2,3,...,n][1,2,3,...,n][1,2,3,...,n],你可以选择一个kkk,将这个排列循环右移kkk次,让后最多交换mmm次任意的两个位置之间的数,将其变成给定的数组。现在给你n,mn,mn,m,你需要求出所有可能的kkk。3≤n≤3e5,0≤m≤n33\le n\le 3e5,0\le m\le \frac{n}{3}3≤n≤3e5,0≤m≤3n思路:首先假设我们现在已经循环移动kkk次了,不难发现我们最多可以处理2原创 2021-10-05 22:49:07 · 176 阅读 · 0 评论 -
Codeforces Round #743 (Div. 2) D. Xor of 3 模拟 + 构造
传送门文章目录题意:思路:题意:给你一个010101序列aaa,定义一次操作是选择一个[1,n−2][1,n-2][1,n−2]范围内的下表,将ai,ai+1,ai+2a_i,a_{i+1},a_{i+2}ai,ai+1,ai+2都变成ai⊕ai+1⊕ai+2a_i\oplus a_{i+1} \oplus a_{i+2}ai⊕ai+1⊕ai+2,问你能否在不超过nnn次操作的前提下,将序列aaa全部变成000。3≤n≤2e53\le n\le 2e53≤n≤2e5思路:首先注意到,原创 2021-09-22 17:07:08 · 133 阅读 · 0 评论 -
Educational Codeforces Round 114 (Rated for Div. 2) D. The Strongest Build 暴力 + bfs
传送门文章目录题意:思路:题意:你有nnn个装备槽,每个槽里面有cic_ici个力量加成,对于每个槽只能选一个力量加成,现在给你mmm个力量组合[b1,b2,...,bn][b_1,b_2,...,b_n][b1,b2,...,bn]代表这个力量组合是不能选择的。问你每个槽选择一个力量之后最大的的力量总和是多少。保证有解。n≤10,1≤ci≤2e5n\le 10,1\le c_i\le 2e5n≤10,1≤ci≤2e5cic_ici总和不超过2e52e52e5思路:可以知道,总共的原创 2021-09-21 08:37:42 · 252 阅读 · 1 评论 -
Codeforces Round #741 (Div. 2) D2. Two Hundred Twenty One (hard version) 前缀和 + 分段模型
传送门文章目录题意:思路:题意:给你一个长度为nnn的串,+++代表111,−-−代表−1-1−1,让后有qqq个询问,每次询问[l,r][l,r][l,r]区间,将这段区间的数拿出来,设为a[1,r−l+1]a[1,r-l+1]a[1,r−l+1],算a1−a2+a3−...=xa_1-a_2+a_3-...=xa1−a2+a3−...=x,问最少删去多少个数才能使得xxx为000,输出删的数的位置。n,q≤3e5n,q\le3e5n,q≤3e5思路:首先考虑简单版本,就是不要求输出删的原创 2021-08-27 13:22:33 · 298 阅读 · 4 评论 -
NWERC 2018 A. Access Points 二维转一维 + 单调栈
传送门文章目录题意:思路:题意:给你平面上nnn个点,你需要对于1−n1-n1−n依次选择nnn个点作为每个点的终点,满足选择的点i<j,xi≤xj,yi≤yji<j,x_i\le x_j,y_i\le y_ji<j,xi≤xj,yi≤yj,最小化每个点的起点到终点的距离平方总和。n≤1e5,si,ti≤1e6n\le1e5,s_i,t_i\le1e6n≤1e5,si,ti≤1e6思路:考虑贡献的公式(xs−xt)2+(ys−yt)2(x_s-x_t)^2+(y_s原创 2021-08-24 20:13:03 · 164 阅读 · 0 评论 -
HDU - 7072 Boring data structure problem 双端队列 + 思维
传送门文章目录题意:思路:题意:你需要实现如下四个操作q≤1e7q\le1e7q≤1e7思路:做的时候想了个链表的思路让队友写了,懒。看了题解感觉题解还是很妙的。你需要快速插入一个数在前后两端,还需要支持删除一个数和查询中间位置的数标号。链表的思路比较明显,直接维护中点的位置,让后每次删除的时候将这个点的链表指向下一个点即可。就是写起来貌似不是很好写。题解是维护了两个双端队列,一个代表左边,一个代表右边,输出答案的话就是右边的第一个位置。考虑两种情况:(1)lsize>rsiz原创 2021-08-17 21:14:36 · 160 阅读 · 0 评论 -
HDU - 7031 Power Station of Art 思维 + 二分图模型
传送门文章目录题意:思路:题意:给你两个完全相同的图,现在两个图的每个点上有一个值valvalval并且有一个颜色colcolcol,颜色只能为红色或黑色,注意两个图只是长得一样,点的权值和颜色并不一定相同。现在你可以进行若干次操作,每次操作可以选择一条边两边的两个点,交换其valvalval,如果这两个点的颜色相同,那么颜色取反,即红色变黑色,黑色变红色,否则颜色不变。问你能否经过若干次操作使得两张图每个点对应的值和颜色相同。n≤1e6n\le1e6n≤1e6思路:比较显然的是我们只用操作一原创 2021-08-06 16:47:53 · 360 阅读 · 0 评论 -
HDU - 7029 Median 思维
传送门文章目录题意:思路:题意:给你1,2,...,n1,2,...,n1,2,...,n一共nnn个数,你需要将其分成mmm组,使得每组的中位数为bib_ibi,保证bib_ibi互不相同。中位数取ck+12c_{\frac{k+1}{2}}c2k+1n,m≤1e5n,m\le1e5n,m≤1e5思路:考虑将中位数看作分割点,那么这个序列就被分成了m+1m+1m+1段,我们发现每两段都可以各取一个数来抵消,所以最后剩下的一定都在同一段里。考虑最大段中包含的个数,分两种情况讨论:(原创 2021-08-06 00:11:29 · 198 阅读 · 0 评论 -
P4231 三步必杀 二次差分
传送门文章目录题意:思路:题意:思路:考虑给[2,6][2,6][2,6]加上s=2,e=10s=2,e=10s=2,e=10的等差数列,变成2,4,6,8,102,4,6,8,102,4,6,8,10,考虑差分数组2,2,2,2,2,−102,2,2,2,2,-102,2,2,2,2,−10,即a[l]+=a,a[l+1−>r]+=d,a[r+1]−=ea[l]+=a,a[l+1->r]+=d,a[r+1]-=ea[l]+=a,a[l+1−>r]+=d,a[r+1]−=e,这个原创 2021-08-04 19:25:38 · 271 阅读 · 0 评论 -
HDU - 6992 Lawn of the Dead 线段树 + 思维
传送门文章目录题意:思路:题意:给你一张n∗mn*mn∗m的图,其中有kkk个点不能走,你只能向下和向右走,问你能到达多少点。n,m,k≤1e5n,m,k\le1e5n,m,k≤1e5思路:可以发现每个点如果其左边和上面都有障碍,那么这个点不可达。考虑到障碍数量比较少,所以肯定是枚举障碍的数量,现在就变成怎么快速统计答案了。我们按照每一列来考虑,下面是样例的图,其中三角形代表障碍。对于每个位置(x,y)(x,y)(x,y),我们查询其它上面障碍出现的位置(如果之前没有障碍我们定义为000)之原创 2021-07-29 21:07:01 · 249 阅读 · 0 评论 -
2021牛客暑期多校训练营3 B Black and white 最小生成树 + 思维
传送门文章目录题意:思路:题意:思路:对于每个数的位置(i,j)(i,j)(i,j),如果将这个位置染黑,那么我们连一个i−>j+ni->j+ni−>j+n的边,可以发现我们的操作不影响连通性。如果想要全部染黑等价于将其变成联通图。所以跑一遍最小生成树即可,用克鲁斯卡尔的话需要桶排。// Problem: Black and white// Contest: NowCoder// URL: https://ac.nowcoder.com/acm/contest/11254原创 2021-07-26 02:59:13 · 189 阅读 · 2 评论 -
2021牛客暑期多校训练营1 G Game of Swapping Numbers 思维 + 巧妙的转换
传送门文章目录题意:思路:题意:给你两个数组A,BA,BA,B,你可以选择AAA的两个位置i,j,i<ji,j,i<ji,j,i<j交换Ai,AjA_i,A_jAi,Aj,需要交换正好kkk次,问你最大的∑i=1n∣Ai−Bi∣\sum_{i=1}^n|A_i-B_i|∑i=1n∣Ai−Bi∣。思路:参考题解的转换方式,我们给A,BA,BA,B数组每个元素分配正负号,只需要使得A,BA,BA,B的正负号总和相等,不必在每个数组中个数相等。考虑如果最小步数得到最优解,显原创 2021-07-21 10:49:16 · 228 阅读 · 0 评论 -
Codeforces Round #586 (Div. 1 + Div. 2) B. Multiplication Table 思维 + 公式
传送门文章目录题意:思路:题意:给你一个n∗nn*nn∗n的矩阵,每个位置由ai∗aja_i*a_jai∗aj得来,主对角线为000,让你求出来aia_iai。n≤1e3n\le1e3n≤1e3思路:由公式ai,j∗ai,kaj,k=ai2\frac{a_{i,j}*a_{i,k}}{a_{j,k}}=a_i^2aj,kai,j∗ai,k=ai2,显然可以O(n)O(n)O(n)递推出来。// Problem: B. Multiplication Table// Contes原创 2021-07-19 10:11:07 · 81 阅读 · 0 评论 -
Codeforces Round #586 (Div. 1 + Div. 2) D. Alex and Julian 数学 + 思维
ωnk=cos k2πn+isink2πn\omega_{n}^{k}=\cos\ k \frac{2\pi}{n}+i\sin k\frac{2\pi}{n}ωnk=cos kn2π+isinkn2πA(x)=a0+a1x+a2x2+a3∗x3+a4∗x4+a5∗x5+⋯+an−2∗xn−2+an−1∗xn−1A(x)=a_0+a_1x+a_2{x^2}+a_3*{x^3}+a_4*{x^4}+a_5*{x^5}+ \dots+a_{n-2}*x^{n-2}+a_{n-1}原创 2021-07-19 10:03:39 · 126 阅读 · 0 评论 -
Codeforces Round #733 (Div. 1 + Div. 2) E. Minimax 分情况讨论 + 思维
传送门文章目录题意:思路:题意:给你一个串,你可以随意安排这个串,使得这个串的每个前缀的kmpkmpkmp数组最大值最小,定义为f(a)f(a)f(a),并且字典序最小,输出安排之后的串。n≤1e5n\le1e5n≤1e5思路:这个题就是个恶心的分情况讨论题,直接分情况吧。(1)(1)(1)全是一个字母的时候,直接输出即可。(2)(2)(2)有一个字母只有一个的时候,可以将最小的放在前面,其他的都依次接在他后面即可,这个时候f(a)f(a)f(a)为000,字典序最小。(3)(3)(3)当原创 2021-07-18 09:11:19 · 223 阅读 · 0 评论 -
Codeforces Round #587 (Div. 3) C. White Sheet 思维
传送门文章目录题意:思路:题意:给你一个白色的矩形和俩个黑色的矩形,问白色被黑色覆盖后还能不能看到。思路:经典被简单题卡。一开始写了个自我感觉很对的做法,结果wa41wa41wa41,检查不出来只能换思路了。考虑一个容斥,我们算出来第一个黑色矩形覆盖的面积,再算第二个黑色矩形覆盖的面积,让后减去两个覆盖的矩形的面积交。此时就是黑色矩形覆盖白色的总面积,只需要算出白色的面积让后看看是否等于即可。// Problem: C. White Sheet// Contest: Codeforces原创 2021-07-17 00:16:07 · 92 阅读 · 0 评论 -
AtCoder Regular Contest 100 D - Equal Cut 思维 + 前缀和
传送门文章目录题意:思路:题意:给你一个数组aaa,你要将其分成四份,让这四份中和的最大值−-−最小值最小,输出这个最小值。n≤2e5,ai≤1e9n\le2e5,a_i\le1e9n≤2e5,ai≤1e9思路:直接枚举不是很好做,考虑先枚举中间的位置iii,设被划分成的四段和分别是s1,s2,s3,s4s1,s2,s3,s4s1,s2,s3,s4且s1<s2,s3<s4s1<s2,s3<s4s1<s2,s3<s4,那么答案就是max(s2,s4)−min(原创 2021-07-16 09:10:05 · 136 阅读 · 0 评论 -
Codeforces Round #732 (Div. 2) D. AquaMoon and Chess 组合数学 + 找规律
传送门文章目录题意:思路:题意:给你一个010101串,当且仅当某个111的某一边i+1,i−1i+1,i-1i+1,i−1有111,这个111可以跟i+2,i−2i+2,i-2i+2,i−2交换位置,问最终能产生多少状态。n≤1e5n\le1e5n≤1e5思路:首先这个题有一个显然的性质:如果存在111111,那么它可以到达任意位置。那么考虑将每个111111都拿出来,假设有xxx对111111,当然这里111111不能与其他的有重叠,有yyy个000,那么答案显然就是C(x+y,x)C(x原创 2021-07-15 10:55:03 · 111 阅读 · 0 评论 -
Codeforces Round #732 (Div. 2) C. AquaMoon and Strange Sort 思维
传送门文章目录题意:思路:题意:给你nnn个数,每个数初始方向是向右,每次可以交换相邻两个位置并且将这两个位置的方向调换,问这个序列的最终状态能否是非递减且方向都向右。n≤1e5,ai≤1e5n\le1e5,a_i\le1e5n≤1e5,ai≤1e5思路:考虑每个位置只能操作偶数次,所以对于aia_iai的初始位置在偶数和奇数的个数一定等于排序之后在偶数或奇数的位置个数,所以统计一下排个序即可。不知道为什么我一直在想树状数组,真是数据结构学魔怔了。// Problem: C. AquaM原创 2021-07-15 09:27:55 · 102 阅读 · 0 评论 -
Educational Codeforces Round 73 (Rated for Div. 2) F. Choose a Square 线段树 + 二维转一维
传送门文章目录题意:题意:给你nnn个点(xi,yi)(x_i,y_i)(xi,yi),每个点有个价值cic_ici,现在你可以框一个正方形,要求左下角和右上角的坐标(x,y)(x,y)(x,y)必须x=yx=yx=y,也就是说必须在x=yx=yx=y这条直线上。现在你可以框一个正方形,被正方形框到的点算入总价值,最后最...原创 2021-07-13 08:56:09 · 89 阅读 · 0 评论 -
Educational Codeforces Round 73 (Rated for Div. 2) E. Game With String 思维博弈 好题(2500)
传送门文章目录题意:思路:题意:思路:我们将每一段...拿出来看成若干段,将其分成以下四种情况:(1)len<b(1)len<b(1)len<b(2)b≤len<a(2)b\le len<a(2)b≤len<a(3)a≤len<2∗b(3)a\le len<2*b(3)a≤len<2∗b(4)len≥2∗b(4)len\ge 2*b(4)len≥2∗b我们依次考虑这四种线段。(1)(1)(1)首先线段111是无用线段,不需要考虑。原创 2021-07-12 19:44:27 · 167 阅读 · 0 评论 -
Codeforces Round #588 (Div. 2) E. Kamil and Making a Stream 数学 + 暴力
传送门文章目录题意:思路:题意:给你一颗树,其中根是111,每个点有一个点权,求每个点到根的所有路径的gcdgcdgcd之和。n≤1e5n\le1e5n≤1e5思路:一看到以为是个点分治,让后发现不是任意点对所以显然不能用点分治来做。后来想了半天也只想到一个暴力,没想到还真是个暴力。考虑从根到点iii的路径上同的gcdgcdgcd个数,可以证明最多有log2(1012)log_2(10^{12})log2(1012)个,所以每个点都继承一下父节点的值即可,由于需要用mapmapmap维护,原创 2021-07-10 15:41:37 · 142 阅读 · 0 评论 -
Codeforces Round #588 (Div. 2) D. Marcin and Training Camp 思维
传送门文章目录题意:思路:题意:有nnn个人,每个人都有一个能力值bib_ibi以及他会的技能aia_iai,当他会第xxx个技能的时候,aia_iai的第xxx位是111。定义当xxx不会某个技能但是yyy会的时候,yyy就认为比xxx好。一些人能够组成一个团队当且仅当团队中不存在一个人认为比所有人都好且团队中至少两个人。求能组成的团队中能力值和最大的。n≤7000n\le7000n≤7000思路:考虑如果两个人会的技能相同,那么这两个人一定可以在一个团队中。考虑一个人aaa会的技能原创 2021-07-10 12:11:48 · 121 阅读 · 0 评论 -
Codeforces Round #590 (Div. 3) E. Special Permutations 差分 + 思维
传送门文章目录题意:思路:题意:思路:直接考虑比较难想,这种公式题基本都是将部分答案看成一个整体,考虑xi,xi+1x_i,x_{i+1}xi,xi+1的贡献的。假设当前的xi=x,xi+1=y,x<yx_i=x,x_{i+1}=y,x<yxi=x,xi+1=y,x<y,分以下几种情况讨论:(1)[1,x−1],[y+1,n](1)[1,x-1],[y+1,n](1)[1,x−1],[y+1,n],这两段区间由于将某个数提前对答案没有影响,所以贡献为y−xy-xy−x原创 2021-07-09 16:01:35 · 127 阅读 · 0 评论 -
Codeforces Round #593 (Div. 2) D. Alice and the Doll 暴力 + 二分
传送门文章目录题意:思路:题意:思路:还以为这个题有什么高深的算法,结果就是个暴力。由于n∗mn*mn∗m达到了1e101e101e10的级别,所以直接暴力肯定是不行的,考虑有很多空格,我们可以维护四个变量表示边界,让后在当前轴上二分最近的障碍点,让后判断即可。实现的时候可以加两个边界比较方便。要注意如果枚举的四个方向,如果有一个方向不能走的话不能直接退出,有如下样例:3 33\ \ 33 30 1原创 2021-07-01 09:52:40 · 133 阅读 · 0 评论 -
Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing 二分 + check
传送门文章目录题意:思路:题意:思路:直接算不好算,考虑二分这个中位数midmidmid。考虑如何checkcheckcheck,这个分情况来就好了:(1)mid>a[i].r(1)mid>a[i].r(1)mid>a[i].r,这个时候这个人永远不能到midmidmid,所以给他a[i].la[i].la[i].l。(2)mid<a[i].l(2)mid<a[i].l(2)mid<a[i].l,这个时候给多少都>mid>mid>mid,原创 2021-06-29 00:01:02 · 134 阅读 · 0 评论 -
Codeforces Round #727 (Div. 2) E. Game with Cards dp + 思维
传送门文章目录题意:思路:题意:初始有左右手,上面各有一个数字为000的卡牌,每次都有一个新卡kik_iki,你可以将其放在左手或者右手,使两只手上的卡片范围在[ll,i,rl,i][l_{l,i},r_{l,i}][ll,i,rl,i]和[lr,i,rr,i][l_{r,i},r_{r,i}][lr,i,rr,i]内,问是否存在一种方案使得每次操作后两手都合法,输出这个方案。n≤100000n\le100000n≤100000思路:可以脑补一下这个过程,我们如果正着来的话,很难判断当原创 2021-06-25 23:04:19 · 174 阅读 · 0 评论 -
Codeforces Round #658 (Div. 2) D. Unmerge 思维 + 背包
传送门文章目录题意:思路:题意:思路:我们可以假设有两个桶,让后向里面放数,可以发现,如果向其中放入了aia_iai,那么紧跟在他后面的所有<ai<a_i<ai的数都必须跟在aia_iai后面放在一个桶中,所以我们可以根据这个分成若干段,我们可以任意安排这些段使其放在两个桶中的任意一个,如果最终能使两个桶的个数都为nnn,那么就是可以的。这个问题可以用可行性背包解决,将段看成物品,容量为nnn即可。// Problem: D. Unmerge// Contest: C原创 2021-06-23 15:34:32 · 91 阅读 · 0 评论 -
Codeforces Round #726 (Div. 2) E2. Erase and Extend (Hard Version) 贪心
传送门文章目录题意:思路:题意:给你一个长度为nnn的串sss,你有两个操作可以使用:(1)(1)(1)从sss的结尾删除一个字母。(2)s=s+s(2)s=s+s(2)s=s+s。让你通过若干次操作使其变成一个长度为kkk的串,且其字典序最小。n,k≤5e5n,k\le5e5n,k≤5e5思路:前排提醒:本题解不是正解,是一个恶心人的贪心。首先答案一定是某一个前缀不断加之后得到的答案,这个比较容易想出来,不多加赘述。我们假设sss开头的字母为chchch,我们将以chchch开头的非原创 2021-06-21 19:40:30 · 158 阅读 · 0 评论 -
Codeforces Round #726 (Div. 2) F. Figure Fixing 二分图 + 思维
传送门文章目录题意:思路题意:给你一张nnn个点mmm条边的图,每个点都有一个当前值aia_iai,目标值bib_ibi,每次可以选择一条边(i,j)(i,j)(i,j),将ai,aja_i,a_jai,aj都加上任意一个数,问最终能否将所有aia_iai都变成目标值。n,m≤2e5n,m\le2e5n,m≤2e5思路我们设ci=bi−aic_i=b_i-a_ici=bi−ai,sum=∑cisum=\sum c_isum=∑ci,那么当sum mod 2=1sum\bmod原创 2021-06-21 16:28:43 · 182 阅读 · 0 评论 -
Codeforces Round #726 (Div. 2) D. Deleting Divisors 博弈
传送门文章目录题意:思路:题意:给你一个数nnn,有两个人博弈,每次可以将nnn减去一个nnn的因子,这个因子不能为111或nnn。当不能操作的人输掉游戏。问你先手赢还是后手赢。思路:这个题多写几项很容看出来规律,但是并不了解其原理,所以写个博客记录一下。分以下三种情况讨论:(1)n(1)n(1)n是奇数,此时nnn的因子都是奇数,设减去的数为ddd,那么得到的数为x=n−dx=n-dx=n−d,xxx一定为偶数,而且不为222的幂次。(2)n(2)n(2)n是偶数且不是222的幂次,那么n原创 2021-06-19 21:18:05 · 268 阅读 · 1 评论 -
Codeforces Round #598 (Div. 3) F. Equalizing Two Strings 思维 + 逆序对
传送门文章目录题意:思路:题意:给你两个长度为nnn的串a,ba,ba,b,每次可以同时翻转a,ba,ba,b中任意一段长度为L(1≤L≤n)L(1\le L\le n)L(1≤L≤n)的子串,问能否通过若干次操作使两个串相同。思路:首先他们包含的字符个数不同的话肯定是不能转换成相同的串的。否则的话,通过观察,有个显然的结论:如果某个串有两个相同的字符,那么可以证明两个串一定可以变成一样的。这个结论比较显然,我们先通过交换使两个相同字符相邻,让后再每次交换长度为222的字串的时候选择这个相邻的原创 2021-06-18 21:20:21 · 71 阅读 · 0 评论 -
Codeforces Round #602 (Div. 2) D2. Optimal Subsequences stl 黑科技
传送门文章目录题意:思路:题意:思路:比较明显的是我们需要将序列从大到小排序,让后取前kkk个数,再从中选择第pospospos小的位置输出当前位置的数即可。一开始想用setsetset维护,但是setsetset没有找第kkk小的函数,所以就用主席树切了。但是题解给了一个黑科技,来记录一下。比较全的博客这个有找第kkk小的函数,所以就变成了一个码量很小的题了。// Problem: D2. Optimal Subsequences (Hard Version)// Contest: Co原创 2021-06-14 22:05:18 · 103 阅读 · 0 评论 -
Educational Codeforces Round 76 (Rated for Div. 2) E. The Contest 思维 + 差分
传送门文章目录题意:思路:题意:给你三个长度分别为k1,k2,k3k1,k2,k3k1,k2,k3的数组a,b,ca,b,ca,b,c,其中k1+k2+k3=nk1+k2+k3=nk1+k2+k3=n,这三个数组中的元素拼接起来是一个nnn的排列,每次可以将某个数组中的某个元素移动到另一个数组,问最少几次操作使得aaa是1−n1-n1−n的一个前缀,ccc是1−n1-n1−n的一个后缀,bbb包含剩下的数。n≤2e5n\le2e5n≤2e5思路:首先可以想一下只有两个数组的时候我们怎么办,记cn原创 2021-06-14 09:31:37 · 110 阅读 · 0 评论 -
上海理工大学第二届“联想杯”全国程序设计邀请赛 Identical Day 思维 + 暴力
传送门文章目录题意:思路:题意:给你一个010101序列,假设有一段长为lll连续的全111子串,定义这段字串不高兴值为l∗(l+1)2\frac{l*(l+1)}{2}2l∗(l+1),整个串的所有不高兴值相加为总的不高兴值。现在你可以将某个111变成000,问最少多少次操作可以使得总不高兴值≤k\le k≤k。思路:由于比赛的时候被好几个题卡着,导致分析复杂度分析错了,错过接近正解的机会。首先一上来就写了个贪心,每次找最大的那个让后从中间断开。这个其实挺容易就hackhackhack掉了,原创 2021-06-13 21:58:12 · 280 阅读 · 0 评论