codeforces
文章平均质量分 56
farer_yyh
ACM蒟蒻,苦逼大学生一只
展开
-
【字符串】字符串的boder和其性质、应用
定义我们定义, 一个字符串sss, 它的borderborderborder是"既是它的前缀又是它的后缀", 且不等于sss本身的串.真borderborderborder是所有borderborderborder中的最长者.显然,每个border 其实是KMP算法中, 字符串S的next数组。性质记SkS_kSk即S1...kS_{1...k}S1...k是字符串SSS的一个boderboderboder,那么这些borderborderborder可以划分成不超过log2∣S∣log_2{原创 2022-03-12 21:01:13 · 1575 阅读 · 0 评论 -
CF-Divide by Zero 2021 and Codeforces Round #714 (Div. 2)-1513D. GCD and MST【MST/思维】
题目链接题意:给定一个数组{a1,a2,...,an}\{a_1,a_2,...,a_n\}{a1,a2,...,an},正整数ppp和连边方式:1.若存在i,j(1≤i,j≤n)i,j(1\le i,j \le n)i,j(1≤i,j≤n),gcd(ai,ai+1,ai+2,…,aj)=min(ai,ai+1,ai+2,…,aj)gcd(a_i, a_{i+1}, a_{i+2}, \dots, a_{j}) = min(a_i, a_{i+1}, a_{i+2}, \dots, a_j)gcd原创 2021-04-28 17:28:43 · 170 阅读 · 0 评论 -
CF-Divide by Zero 2021 and Codeforces Round #714 (Div. 2)-1513C. Add One【dp预处理】
题目链接题意:给定一个数,定义一个操作:把每一位+1后插入原位置,即'191'一次操作后变为'2102'。问k(k≤2∗105)k(k\le 2*10^5)k(k≤2∗105)次操作后结果有多少位.共有t(t≤2∗105)t(t\le 2*10^5)t(t≤2∗105)次询问。思路:如果对于每次操作都模拟一次的话,肯定会超时。此时我们想到预处理,很容易注意到对于给出的数,每一位的操作实际上是独立的,同时考虑到,对于某个位上的数 (假设为xxx)而言,对整个串进行kkk次操作实际上等同于对其进行x+kx+原创 2021-04-25 19:33:33 · 213 阅读 · 0 评论 -
CF-Codeforces Round #706 (Div. 2)-1496B. AND 0, Sum Big【思维/位运算】
题目链接题意:构造一个含nnn个kkk位二进制数的序列,使得序列中所有数按位与的结果为000,且序列和最大,求构造方案数。思路:对于nnn个数的每一个位,显然都需要至少有一个为000,这样才能保证最后按位与结果为000;由于要求序列和最大,故每一位上应恰好只有一个000,这样对于kkk个位,每个位上的000都有nnn种选择,答案为nkn^knk.AC代码:#include <bits/stdc++.h>#define ll long longusing namespace std;原创 2021-04-20 09:57:17 · 266 阅读 · 0 评论 -
CF-Codeforces Round #716 (Div. 2)-1514A. Perfectly Imperfect Array【思维】
题目链接题意:给定一个序列,是否存在若干个数,它们的乘积不是完全平方数。思路:显然有a2∗b2∗...=(a∗b∗...)2a^2*b^2*...=(a*b*...)^2a2∗b2∗...=(a∗b∗...)2,所以只要有一个数不是完全平方数即可。AC代码:#include <bits/stdc++.h>#define ll long longusing namespace std;inline int read() { int x = 0, f = 1; char ch原创 2021-04-20 09:48:27 · 195 阅读 · 0 评论 -
CF- Educational Codeforces Round 97 (Rated for Div. 2)-1437C. Chef Monocarp【dp】
题目链接题意:n个数字{a1,a2,...,an}\{a_1,a_2,...,a_n\}{a1,a2,...,an},iii放到位置的花费为abs(i−aj)abs(i−a_j)abs(i−aj),求放置所有数字的最小花费。思路:经典背包#include <bits/stdc++.h>#define pcc pair<char, char>#define pii pair<int, int>#define vi vector<int>#d原创 2021-03-17 11:51:30 · 363 阅读 · 0 评论 -
CF- Educational Codeforces Round 97 (Rated for Div. 2)-1437B. Reverse Binary Strings【思维/贪心】
题目链接题意:给定一个01数量相等的二进制字符串,每次操作可以旋转一段子串,问至少多少次操作可以使得所有相邻字符都不一样。思路:对于某个"00"开头(结尾),"11"结尾(开头)的子串,可以在一次操作完成置换,所以答案就是字符串中"00"或者"11"的数量的最大值,将其与整个字符串的开头或结尾配对即可。AC代码:#include <bits/stdc++.h>#define pcc pair<char, char>#define pii pair<int, int&原创 2021-03-16 15:34:03 · 274 阅读 · 0 评论 -
CF-Codeforces Round #706 (Div. 2)-1496D. Let‘s Go Hiking【分类讨论/思维】
题目链接题意:一个大小为nnn的数组ppp (ppp是1,2,3,...,n{1,2,3,...,n}1,2,3,...,n的一个排列),现在A,BA,BA,B进行这样一个游戏,AAA先选定一个初始位置xxx,BBB再选定一个初始位置yyy(选定的位置是公开的),然后开始移动,移动规则如下:AAA: 选定xxx为AAA移动到的位置,且需满足x≠y,1≤x′≤n,∣x−x′∣=1,p[x′]<p[x]x≠y,1 \le x'\le n,|x-x'|=1,p[x']<p[x]x=y,1≤x′原创 2021-03-12 15:39:13 · 162 阅读 · 0 评论 -
CF-Codeforces Round #706 (Div. 2)-1496C. Diamond Miner【数学/思维】
题目链接题意:给定相等的x,yx,yx,y轴上的点,两两配对并计算二者的距离,问所有配对方式中最小距离和是多少。思路:显然可以将所有点坐标取一个绝对值,即可设x,yx,yx,y轴上点分别为(a,0),(b,0)(a,b>0)(a,0),(b,0) (a,b>0)(a,0),(b,0)(a,b>0)此时我们在两坐标轴上分别任取两点A,C、B,DA,C、B,DA,C、B,D,如下图所示:由图显然可见∣AD∣+∣BC∣<∣AO∣+∣BO∣+∣CO∣+∣DO∣|AD|+|BC|&l原创 2021-03-12 14:07:03 · 122 阅读 · 0 评论 -
CF-Educational Codeforces Round 103 (Rated for Div. 2)-B. Inflation【贪心】
题目链接题意:给定一序列{p0,p1,p2,...,pn−1}\{p_0,p_1,p_2,...,p_{n-1}\}{p0,p1,p2,...,pn−1},以及一种操作:pi=pi+xi(xi为正整数)p_i=p_i+x_i(x_i为正整数)pi=pi+xi(xi为正整数),使得处理后的序列满足∀i∈{1,2,3,...,n−1}有pi(p0+p1+⋯+pi−1)≤k%\forall i \in \{1,2,3,...,n-1\} 有\frac{p_i}{(p_0 + p_1 + \dot原创 2021-01-30 02:06:12 · 267 阅读 · 3 评论 -
CF-Educational Codeforces Round 103 (Rated for Div. 2)-A. K-divisible Sum【思维】
题目链接题意:要求构造一个nnn个正整数数的集合,使得其和能够整除kkk,同时使得集合中的最大值最小,求这个最大值的最小值。思路:明显尽量均分是最佳方案,注意n>kn>kn>k时由于集合中元素必须是正整数,可以对kkk进行整数倍放大来处理。AC代码:#include <bits/stdc++.h>#define ll long longusing namespace std;inline int read() { int x = 0, f = 1;原创 2021-01-30 01:35:55 · 241 阅读 · 0 评论 -
CF-Codeforces Round #676 (Div. 2)-D. Hexagons【思维】
题目链接题意:给定一个六边形网格,往每一个方向走的花费是固定的,问从原点到(x,y)(x,y)(x,y)的最小花费。思路:可以发现一定可以只走两个方向走到终点,并且这样一定是最优的,我们通过观察发现,(为和二维坐标系对应,我们把x,y反过来说…),我们发现c1,c2c_1,c_2c1,c2方向对xxx具有正贡献,c4,c5c_4,c_5c4,c5方向对xxx具有负贡献,c1,c6c_1,c_6c1,c6方向对yyy具有正贡献,c3,c4c_3,c_4c3,c4方向对yyy具有负贡献,同时原创 2020-10-21 19:46:07 · 164 阅读 · 0 评论 -
CF-Codeforces Round #676 (Div. 2)-C. Palindromifier【构造】
题目链接题意:给定一个字符串S=s1s2s3...snS=s_1s_2s_3...s_nS=s1s2s3...sn,有两个操作:选择i(2≤i≤n−1)i(2 \le i \le n-1)i(2≤i≤n−1),将子串s2s3…sis_2s_3 \ldots s_is2s3…si反转后加到原串前;选择i(2≤i≤n−1)i(2 \le i \le n-1)i(2≤i≤n−1),将子串sisi+1…sn−1s_i s_{i + 1}\ldots s_{n - 1}sisi+1…sn−1原创 2020-10-21 19:15:13 · 136 阅读 · 0 评论 -
CF-Codeforces Round #676 (Div. 2)-B. Putting Bricks in the Wall【思维】
题目链接题意:给定一个n∗nn*nn∗n的01矩阵,起点是(1,1)(1,1)(1,1),终点是(n,n)(n,n)(n,n),从始至终只可以走相同的数字,为了使可行路线不存在,可以转换除起点和终点之外的其他点(每次转换可以把1变成0或者把0变成1),问能否在两次转换之内实现.思路:显然只要把起点或终点封住就行,也就是让起点旁边的两个数字和终点旁边的两个数字不一样。AC代码:#include <bits/stdc++.h>#define pcc pair<char, char&g原创 2020-10-21 17:48:18 · 117 阅读 · 0 评论 -
CF-Codeforces Round #676 (Div. 2)-A. XORwice【位运算】
题目链接题意:给定正整数a,ba,ba,b,找一个整数xxx,最小化(a⊕x)+(b⊕x)(a \oplus x)+(b \oplus x)(a⊕x)+(b⊕x)思路:考虑两数二进制下相加,只有把两数都为1的位改成不是1的才可以将两数的和减少,所以只要使得KaTeX parse error: Expected 'EOF', got '&' at position 4: x=a&̲b即可...原创 2020-10-21 17:06:35 · 89 阅读 · 0 评论 -
CF-Codeforces Round #674 (Div. 3)-1426C. Increase and Copy【贪心】
题目链接题意:初始序列只有一个元素111,给定两个操作:选择一个元素使其+1选择一个元素复制加到序列尾部问让序列所有元素之和超过nnn所需最小操作次数。思路:原创 2020-10-21 16:47:53 · 185 阅读 · 0 评论 -
CF-Codeforces Round #673 (Div. 2)-1417D. Make Them Equal【思维】
题目链接题意:给定一序列{a1,a2,a3,...,an}\{a_1,a_2,a_3,...,a_n\}{a1,a2,a3,...,an},和如下操作:选择两个元素ai,aja_i,a_jai,aj和一整数xxx,令ai=ai+x∗i,aj=aj−x∗ia_i=a_i+x*i,a_j=a_j-x*iai=ai+x∗i,aj=aj−x∗i问能否在不超过3n3n3n次操作内,使得序列所有元素相同思路:为了方便表述,将操作选择的数是i,j,xi,j,xi,j,x时记作操作[i,j,原创 2020-09-30 14:47:41 · 166 阅读 · 0 评论 -
CF-Codeforces Round #673 (Div. 2)-1417B. Two Arrays【思维】
题目链接题意:给定一序列{a1,a2,a3,...,an}\{a_1,a_2,a_3,...,a_n\}{a1,a2,a3,...,an},和一整数T,现有两个集合C、DC、DC、D,将该序列每一个元素都放进一个集合中,对集合XXX定义一个函数f(X)f(X)f(X),其值等于集合中和为T的二元数对的个数(满足1≤i<j≤m且Xi+Xj=T1≤i<j≤m 且 X_i+X_j=T1≤i<j≤m且Xi+Xj=T的数对(i,j)(i,j)(i,j)的数量),问如何分配能使f(C)+原创 2020-09-29 22:14:38 · 182 阅读 · 0 评论 -
CF-Codeforces Round #673 (Div. 2)-1417A. Copy-paste
题目链接题意:给定一序列{a1,a2,a3,...,an}\{a_1,a_2,a_3,...,a_n\}{a1,a2,a3,...,an}和一整数T,对序列中任意两个元素进行一次操作,使得其中一个元素变成两个元素的和,问在操作后任意元素不超过T的前提下,最多能进行几次操作?思路:找出序列中的最小值,把它加到其它元素上,就可以保证操作次数最多。代码:#include <bits/stdc++.h>#define pcc pair<char, char>#define原创 2020-09-29 22:03:27 · 115 阅读 · 0 评论 -
CF-Codeforces Round #673 (Div. 2)-1417C. k-Amazing Numbers【思维】
题目链接题意:给定一序列{a1,a2,a3,...,an}\{a_1,a_2,a_3,...,a_n\}{a1,a2,a3,...,an},问该序列所有长度为iii的子序列的最大公共元素是多少(i=1,2,...,ni=1,2,...,ni=1,2,...,n)思路:我们注意到:对于某个数字,我们需要考虑区间至少要多大才可以每个区间都包含到它。因此我们维护对于每种数字,其与下一个同种数字的最大距离,同时考虑元素到头和到尾的距离。如此一来就可以知道对于每种数字最短需要多大的区间。之后只要先(ans原创 2020-09-29 21:52:50 · 212 阅读 · 0 评论 -
CF-Educational Codeforces Round 93 (Rated for Div. 2)-1398D. Colored Rectangles【DP】
题目链接题意:给定三种颜色的棍子,它们分别有R、G、B对,同时给出每种颜色每一对的长度,现在可以选择两种不同颜色的棍子组成矩形,问你用以上木棒能够组成的矩形面积之和的最大值。思路:...原创 2020-08-16 00:38:50 · 173 阅读 · 0 评论 -
CF-Educational Codeforces Round 84 (Rated for Div. 2)-1327B. Princesses and Princes【模拟】
题目链接题意:给n个公主和王子,分别标号1,2,3,...,n1,2,3,...,n1,2,3,...,n,每个公主有一个心仪的王子列表,所有公主按顺序进行匹配,并且对于每一位公主也按照自己心仪列表从前往后匹配王子,如果没匹配到就不结婚。现在你可以在匹配开始之前说服某一位公主添加一个王子进入心仪列表(包办QAQ),问你最终匹配成功的数量。思路:直接按题意模拟。由于当前最多匹配完成nnn对,所以如果可以直接匹配成功nnn对,就无需操作,如果能够匹配成功不足nnn对,由于是一对一匹配,所以对于某一个未匹配的原创 2020-08-16 00:04:11 · 540 阅读 · 0 评论 -
CF-Educational Codeforces Round 84 (Rated for Div. 2)-1327A. Sum of Odd Integers【找规律or数学】
题目链接题意:问你nnn是否可以分成kkk个奇数的和思路:我是找规律做的我发现对于前面的一些数,能分成的奇数数量是固定的如下:nnnkkknnnkkk11111、32012231131、34214251151、362162、47117182182、491、3191、3102202、4#include <bits/stdc++.h>#defi原创 2020-08-15 23:45:45 · 109 阅读 · 0 评论 -
CF-Educational Codeforces Round 84 (Rated for Div. 2)-1327C. Game with Chips【思维】
题目链接题意:给定n∗mn*mn∗m的网格和kkk个点的起始位置和目标位置,共有上下左右四种移动方式,每次移动所有的点都会一起平移一格,如果在边界不能平移就不会动,点可以重叠。问你如何移动这些点,使得他们在这移动过程中都经过各自的目标点。(移动次数≤2mn\le 2mn≤2mn)思路:既然不超过2mn2mn2mn,就直接先向上移动nnn次,向左移动mmm次,把所有的点都聚集到(1,1)(1,1)(1,1),然后再蛇形走到底就行了,以上的操作次数总共为m+n+mnm+n+mnm+n+mn显然满足条件。A原创 2020-08-15 23:04:29 · 263 阅读 · 0 评论 -
CF-Educational Codeforces Round 93 (Rated for Div. 2)-1398C. Good Subarrays【数学】
题目链接题意:给定一序列a1,a2,…,ana_1, a_2, \dots , a_na1,a2,…,an,若连续子序列al,al+1,al+2,…,ar−1,ara_l, a_{l+1}, a_{l+2}, \dots , a_{r-1}, a_ral,al+1,al+2,…,ar−1,ar满足∑i=lrai=r−l+1\sum\limits_{i=l}^{r} a_i = r - l + 1i=l∑rai=r−l+1,称为goodgoodgood序列,求goodgoo原创 2020-08-15 11:35:59 · 283 阅读 · 0 评论 -
CF-Educational Codeforces Round 93 (Rated for Div. 2)-1398B. Substring Removal Game【贪心】
题目链接题意:给定一个01字符串,每次可以删掉连续的0或1,Alice和Bob轮流进行删除,删掉的1的数量是得分,Alice先手,问Alice最大得分。思路:二者均采取最佳策略的情况下,肯定会删除最多的连续1,所以获取字符串中所有连续1的长度并降序排列,对偶数下标求和,就可以得到Alice最大分数。AC代码:#include <bits/stdc++.h>#define ll long long#define N 100005using namespace std;int T原创 2020-08-15 11:35:25 · 190 阅读 · 0 评论 -
CF-Educational Codeforces Round 93 (Rated for Div. 2)-1398A. Bad Triangle
题目链接题意:给定一非降序序列作为一堆线段的长度,找三个数让他们不能组成三角形。找不到输出”-1“思路:直接比较前两个和最后一个的大小即可。AC代码:#include<bits/stdc++.h>#define N 50005using namespace std;int T = 1;ll a[N];int main() { cin>>T; while (T--) { int n; cin>>n;原创 2020-08-15 11:31:53 · 121 阅读 · 0 评论 -
CF-Codeforces Round #664 (Div. 2)-1395C. Boboniu and Bit Operations【位运算】
题目链接题意:给定两个长度分别为n,m(2≤m,n≤200)n,m(2 \le m,n \le 200)n,m(2≤m,n≤200)的序列{a1,a2,…,an}\{a_1,a_2,\ldots,a_n\}{a1,a2,…,an}、{b1,b2,…,bm}\{b_1,b_2,\ldots,b_m\}{b1,b2,…,bm}(0≤ai,bi<29)(0\le a_i,b_i< 2^9)(0≤ai,bi<29)定义序列{c1,c2,...,cn}\{c_1,c_2,...,c原创 2020-08-13 04:11:52 · 299 阅读 · 0 评论 -
CF-Codeforces Round #664 (Div. 2)-1395B. Boboniu Plays Chess【思维】
题目链接题意:给你n∗mn*mn∗m的网格和起始位置,每次可以在自己行和列内任意走动,问如何不重复的走完所有格子。思路:直接先向上走到上边界,再向左走到左边界,此时即到了(1,1)(1,1)(1,1)点,然后蛇形走位就行了,过程中维护一个visvisvis数组标记是否访问过即可。AC代码:#include <bits/stdc++.h>#define ll long longusing namespace std;int T = 1;bool vis[111][111];sig原创 2020-08-13 02:50:04 · 188 阅读 · 0 评论 -
CF-Codeforces Round #664 (Div. 2)-1395A. Boboniu Likes to Color Balls【思维】
题目链接题意:给定四种字母("r,g,b,w")的数量,你可以把("r,g,b")三种字母每种选一个变成三个w,问你能否把这些字母通过上述操作和重组变成回文字符串。思路:能够形成回文串的条件是四个数字均为偶数或者三偶数一奇数,即奇数个数小于等于1,所以只要能变就变,让奇数个数尽量小即可.看到1e9的范围和1s的时限还是没敢写O(n)O(n)O(n)(我以为)的做法,赛后一看其实根本没有O(n)O(n)O(n),只要两步就行了,下面放一个简洁的代码。AC代码:#include<bits/std原创 2020-08-13 02:45:35 · 173 阅读 · 0 评论 -
CF1391-Codeforces Round #663 (Div. 2)-1391C - Cyclic Permutations【思维、构造】
题目链接题意:给定一个nnn,对于nnn的某一个排列ppp,我们定义如下的连边方式将其构建为一张图:对于每一个i∈{1,2,3,...,n}i\in\{1,2,3,...,n\}i∈{1,2,3,...,n},分别在它左右两侧找到距离最近且比pip_ipi大的元素pjp_jpj,在i和ji和ji和j中间连一条无向边。如果找不到就不连。(注意是按下标连边,不是按值连边)。简单解释一下,对于序列p=[3,1,4,2]p = [3,1,4,2]p=[3,1,4,2],对应连出的边是(1,3):对于原创 2020-08-10 02:45:35 · 281 阅读 · 0 评论 -
CF1391-Codeforces Round #663 (Div. 2)-1391B - Fix You【思维】
题目链接题意:给你n∗mn*mn∗m的矩阵表示一个传送带,除了(n,m)(n,m)(n,m)外每个元素都等于’D’或’R’,D表示可以把东西向下传递,R表示可以把东西向右传递,问你最多更改几个元素,使得所有物品均可被传送带传送至(n,m)(n,m)(n,m)。思路:答案是:最后一行不为R的数量+最后一列不为D的数量。显然,我们必须更改最后一列中的所有R和最后一行中的所有D。否则,放置在这些单元格中的所有物品都会移出网格。对于其他的网格,由于只能向下或者向右,所以他们全都会走到最后一行或者最后一列。因此原创 2020-08-10 01:58:18 · 139 阅读 · 0 评论 -
CF1391-Codeforces Round #663 (Div. 2)-A. Suborrays【抽屉原理】
题目链接题意:找出正整数n的一个排列ppp,使得其为满足以下条件的序列(pi OR pi+1 OR … OR pj−1 OR pj)≥j−i+1(p_i \text{ OR } p_{i+1} \text{ OR } \ldots \text{ OR } p_{j-1} \text{ OR } p_{j}) \ge j-i+1(pi OR pi+1 OR …&nb原创 2020-08-10 01:48:44 · 195 阅读 · 0 评论 -
CF1399-Codeforces Round #661 (Div. 3)-D. Binary String To Subsequences(构造、模拟)
题目链接题意:给定一个01字符串,将其分成n个子序列,使得每个子序列都没有连续的0或1,问n的最小值和每一个字符所属的序列编号。思路:使用两个队列q0,q1q0,q1q0,q1分别存储0和1的下标(同时两个队列的长度之差也体现了0和1的数量差),遍历字符串:遇见’0’时,若q1为空则必须开辟一个新的子序列来存储这个多出来的’0’,若q1不为空,它就直接放到上一个1所在的子序列的后面,也就是子序列编号相同。遇见’1’时同理AC代码:#include<bits/stdc++.h>原创 2020-08-06 07:56:23 · 592 阅读 · 3 评论 -
CF1399-Codeforces Round #661 (Div. 3)-C. Boats Competition(暴力)
题目链接题意:给定一个数字序列w1,w2,…,wn(1≤n≤50,1≤wi≤n)w_1, w_2, \dots, w_n(1 \le n \le 50,1 \le w_i \le n)w1,w2,…,wn(1≤n≤50,1≤wi≤n),从中挑选出和相等(和不确定)的二元组,问你最多能够组合出的二元组的数量。思路:注意到n和wiw_iwi都很小,故直接从[2,2∗n][2,2*n][2,2∗n]枚举二元组的和SSS,记录最大值即可。AC代码:#include<bits/st原创 2020-08-06 06:51:16 · 374 阅读 · 0 评论 -
CF1399-Codeforces Round #661 (Div. 3)-B. Gifts Fixing (贪心)
题目链接题意:给定两个序列{a1,a2,…,an},{b1,b2,…,bn}\{a_1, a_2, \dots, a_n\},\{b_1, b_2, \dots, b_n\}{a1,a2,…,an},{b1,b2,…,bn},给定三种操作:1.ai=ai−1a_i=a_i-1ai=ai−12.bi=bi−1b_i=b_i-1bi=bi−13.ai=ai−1a_i=a_i-1ai=ai−1 andandand bi=bi−1b_i=b_i-1bi=bi−1问最少的原创 2020-08-06 06:37:33 · 229 阅读 · 0 评论 -
CF1399-Codeforces Round #661 (Div. 3)-A. Remove Smallest(水题)
题目链接题意:给定一个序列,每次操作可以任选两个差的绝对值小于等于1的元素并删掉其中的较小数,问你能否通过有限次操作把序列删到只剩一个数。思路:排序,计算相邻数的差,只要有大于1的就不可能达到目标。AC代码:#include<bits/stdc++.h>using namespace std;#define ll long long#define pb push_back#define rep(i,a,b) for(int i=a;i<=b;i++)#define fre原创 2020-08-06 06:29:10 · 181 阅读 · 0 评论 -
CF1399-Codeforces Round #661 (Div. 3)-E1. Weights Division (easy version)
传送门:题目链接题意:给定一棵边权树,树的总价值是根节点到所有叶子节点所经过的距离之和∑v∈leavesw(root,v)≤S\sum\limits_{v \in leaves} w(root, v) \le Sv∈leaves∑w(root,v)≤S,距离即根节点到叶子节点经过所有边的边权和。给定一个操作:选择任意一条边将其边权值除以二(向下取整)(即边权wi:=⌊wi2⌋w_i := \left\lfloor\frac{w_i}{2}\right\rfloorwi:=⌊2wi⌋)。原创 2020-08-06 06:23:47 · 565 阅读 · 4 评论 -
Educational Codeforces Round 92 (Rated for Div. 2)题解(A-C)
目录A.LCM ProblemB.Array WalkC. Good StringA.LCM Problem题意:给定两个整数定义的闭区间[l,r][l,r][l,r],让你在区间内找出两个数x,yx,yx,y满足LCM(x,y)≤rLCM(x,y) \le rLCM(x,y)≤r;思路:容易验证LCM(x,y)LCM(x,y)LCM(x,y)至少是min(x,y)min(x,y)min(x,y)的二倍,所以直接构造一组最小的解(l,2l)(l,2l)(l,2l)#include <bits/原创 2020-07-30 04:59:17 · 1136 阅读 · 0 评论 -
CodeForces-1257 B. Magic Stick【思维】
题目链接题意:给出x,y和两种操作,问你是否能够通过不限次数的操作将x变成y,操作1:若x是偶数,乘以3/2,操作2:若x>1,x=x-1思路:显然x>=y时可以不断通过操作2来得到y,当x<y时,我们考虑:如果x>3,那么可以通过不断操作1(奇数的话先做一次操作2)来变大,那么就变成x>=y的情况,变成前面说到的情况,可以做到,如果x等于1,2,3,只需要特...原创 2019-11-14 16:49:14 · 381 阅读 · 0 评论