![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
codeforces
陆小萌
这个作者很懒,什么都没留下…
展开
-
CF1370 D. Odd-Even Subsequence
Question给定一个长度为nnn的数组a[n]a[n]a[n],从中不改变顺序选取kkk个数,使得min(max(a奇),max(a偶))min(max(a_奇),max(a_偶))min(max(a奇),max(a偶))最小。Solution只需要让奇数位尽可能小或者偶数位尽可能小即可。二分答案,若奇数位置或偶数位置其中之一满足答案即可。Code#include<bits/stdc++.h>#define fi first#define se second#defin原创 2020-06-21 15:40:34 · 1256 阅读 · 0 评论 -
CF1358 D. The Best Vacation
CF1358 D. The Best Vacationnnn个月,每个月有a[i]a[i]a[i]天,每个月第kkk天的贡献为kkk,求连续xxx天最大贡献为多少。Solution尺取最后一个月一定会取完,只需要尺取枚举最后一个月即可,注意一下第一个月可能只取一部分。尺取法可以用前缀和优化算贡献。环可以用2n的数组等效替代。Code#include<bits/stdc++.h>#define fi first#define se second#define mp mak原创 2020-05-28 00:56:55 · 226 阅读 · 0 评论 -
CF1352 E.Special Elements
CF1352EQuestion给定数组aaa满足1≤a[i]≤n(1≤n≤8000)1\le a[i] \le n(1\le n\le 8000)1≤a[i]≤n(1≤n≤8000),若数组中任意连续且长度≥2\ge 2≥2的和等于a[i]a[i]a[i]则贡献值+1+1+1,求最后贡献值为多少?Solution数据范围比较小直接O(N2)O(N^2)O(N2)暴力即可。写这篇题解是想告诉自己同样是判断状态的真假,不同的容器相差的时间很多。比如这道题用set就会被卡,用unordered_set原创 2020-05-11 21:09:07 · 246 阅读 · 0 评论 -
CF1345 D. Monopole Magnets
D. Monopole MagnetsQuestion题意太麻烦懒得解释Solution特判-1的情况:1.某一行(列)存在’#‘且不连续的情况2 .某一行(列)全为’.‘的同时且所有列(行)均存在’#’求连通块的个数Code#include<bits/stdc++.h>using namespace std;typedef long long ll;typ...原创 2020-05-07 14:56:52 · 222 阅读 · 0 评论 -
CF190 D. Non-Secret Cypher
CF190 D. Non-Secret CypherQuestion给定一个长度为nnn求满足[L,R][L,R][L,R]中有至少kkk个数字相同的子区间的数量。1≤k≤n≤4×1051\le k\le n \le 4\times 10^51≤k≤n≤4×105Solution遇到这种和[L,R][L,R][L,R]有关的子区间数量问题,可以采取尺取法,尺取法每个边界判断一组,复杂度为...原创 2020-05-05 17:02:52 · 171 阅读 · 0 评论 -
CF180 D. Name
CF180 D. NameQuestion给定两个字符串sss和ttt,若重新排列sss之后能使得s>ts>ts>t,则输出字典序尽可能小且满足条件的sss,否则输出−1-1−1。Solution贪心+分类讨论+DFS这里思路应该是十分清晰的,主要我在想如何实现会比较方便,看了一下当时比赛第一个交的人,交的是一份DFS,一个一个字符往下去遍历,挺适合这里的,而且也好写。...原创 2020-05-04 11:48:25 · 251 阅读 · 0 评论 -
CF1348 D. Phoenix and Science
CF1348 D. Phoenix and ScienceQuestion一开始有1个细菌,他的权值为1。白天的时候1个细菌可以分裂成2个,也可以不分裂,晚上的时候1个细菌会增加权值1,求最少要多少天能够到达所有权值的和恰好为n,并且给出对应n天每天有几个细菌要分裂。Solution设需要TTT天。最快的增加方法为每次所有细菌分裂为222个,晚上加上分裂后细菌的数量,那么T=log2(n...原创 2020-05-02 05:32:16 · 336 阅读 · 0 评论 -
CF1348 C. Phoenix and Distribution
CF1348 C. Phoenix and DistributionQuestion给你n个字符,要求你将其分为k份,每份个数至少有1个,使得新组合的字符串中字典序最大的字符串的字典序尽可能小,打印这个字符串。Solution分类讨论字典序最小,先排序。s1≠sks_1\neq s_ks1=sk,答案为sks_ksk,此时剩余部分直接放在s1s_1s1后面所得解最优。s...原创 2020-05-02 05:15:41 · 228 阅读 · 0 评论 -
CF1342 D - Multiple Testcases
D - Multiple TestcasesQuestion给定 nnn 个数 m[i]m[i]m[i],每个m[i]m[i]m[i]都在 [1,k][1,k][1,k]的范围内再给定kkk个数c[i]c[i]c[i]要求将所有的m[i]m[i]m[i]进行分组c[i]c[i]c[i]表示每组中大于等于iii的数不超过c[i]c[i]c[i]个问最少能分几组,并输出分组方案。Solu...原创 2020-04-27 16:32:36 · 227 阅读 · 0 评论 -
CF1341 D. Nastya and Scoreboard
Question一个n个数码位的分数板,每一个数码位都是一个七段数码管,现在给出每个数码位的显示情况,问再点亮k段数码管的话能显示的最大的数是多少,如果不能构成一串数字,就输出-1.Solution贪心+DFS+剪枝我们要构造的数最大,那就是高位尽可能大。直接爆搜TLE,考虑优化加入数组v[i][j]v[i][j]v[i][j]表示到第iii个点,还剩jjj次操作的时候是否能找到可行解,...原创 2020-04-26 14:12:28 · 214 阅读 · 0 评论 -
CF1343 E. Weights Distributing
E. Weights DistributingQuestion给定由nnn个点,mmm条边构成的无权无向图和mmm个权值以及三个点a,b,ca,b,ca,b,c。问如何分配这mmm个权值才能使 lena→b+lenb→clen_{a→b}+len_{b→c}lena→b+lenb→c最小Solution有两种情况:a→x→b→x→ca→x→b→x→ca→x→b→x→c, lena→...原创 2020-04-23 17:28:30 · 188 阅读 · 0 评论 -
CF1343 D. Constant Palindrome Sum
D. Constant Palindrome SumQuestion给定一个长度为 nnn 的数列,nnn 为偶数,保证每个元素在 [1,k][ 1 , k ][1,k] 之间。每次操作可以把某个位置的数字变成 [1,k][ 1 , k ][1,k] 内的任意数字。要求让这个数列满足:对于所有的i∈[1,n2],a[i]+a[n−i+1]i ∈ [ 1 , \frac{n}{2} ],a[...原创 2020-04-23 14:58:24 · 274 阅读 · 0 评论 -
CF1336 A. Linova and Kingdom
A. Linova and Kingdom题意给你一颗nnn个节点根为1号节点的树,选kkk个城市作为工业城市,其余为旅游城市,工业城市的使节每经过旅游城市开心值+1,求所有工业城市的使节到1号节点的开心值的和最大为多少?思路贪心 dfs很容易看出来如果只选一个,一定选距离根节点最远的叶子,我们思考第四个为什么选2而不是3和4,因为选3和4,会减少其子树节点的开心值。(因为我们选这个点...原创 2020-04-16 16:32:03 · 1347 阅读 · 4 评论 -
CF1336 B. Xenia and Colorful Gems
B. Xenia and Colorful Gems题意给你三个数组长度分别为r,g,b(1≤r,g,b≤1e5)r,g,b(1\leq r,g,b\leq1e5)r,g,b(1≤r,g,b≤1e5),从中分别选出一个数x,y,yx,y,yx,y,y,问(x−y)2+(y−z)2+(z−x)2(x-y)^2+(y-z)^2+(z-x)^2(x−y)2+(y−z)2+(z−x)2最小为多少?思...原创 2020-04-16 16:16:29 · 449 阅读 · 0 评论 -
CF1338 B. Edge Weight Assignment
CF1338 B. Edge Weight Assignment题意一棵n个结点的树,求最小和最大需要多少个不同的路径来构造树的路径权值,使得任意两片叶子的路径异或和为0。思路首先这是一棵无根树,以其任意一个叶子结点为根。(避免讨论)首先考虑最小,最小要么为1要么为3。为1的情况是任意结点到根节点的距离为偶数。为3的情况是只要有一个结点到根结点的距离为奇数。这里仅判断奇偶有两种写法...原创 2020-04-14 16:57:59 · 431 阅读 · 1 评论 -
CF1334 D. Minimum Euler Cycle
D. Minimum Euler Cycle题意给你一个nnn个结点的完全有向图,求其字典序最小的欧拉回路,输出lll到rrr之间的结点为多少。思路构造 找规律 前缀和 二分结合样例找规律容易发现路径为1 2 1 3 1 4 1 5 … 1 n2 3 2 4 2 5 … 2 n3 4 3 5 3 6 … 3 n…1比赛的时候由于我没有注意样例中99995 9998900031...原创 2020-04-12 14:02:59 · 280 阅读 · 0 评论 -
CF1333 C. Eugene and an array
C. Eugene and an array题意给你一个长度为n的数组,求不含和为0的子串的个数。思路前缀和 思维前缀和pre[i]=pre[j]pre[i]=pre[j]pre[i]=pre[j]意味着ai+1∼aja_{i+1} \sim a_jai+1∼aj这一段的和为0,则所求字符串不应该包含这段,令ppp为pre[i]pre[i]pre[i]所在的位置,则不包含子串和为0的...原创 2020-04-09 15:32:14 · 688 阅读 · 0 评论 -
CF1330 B. Dreamoon Likes Permutations
B. Dreamoon Likes Permutations题意给出一串nnn个数字,定义如果一个数列中[1,k][1,k][1,k]都存在且只出现一次,则它为一个“长度为kkk排列”,问如何把给定数列划分成两段,使得两边都为一个排列。思路有一段一定为数组aaa中最大值mxmxmx,另一段则是n−mxn-mxn−mx,对两种情况予以验证即可。#include<bits/stdc++...原创 2020-04-07 22:49:57 · 185 阅读 · 0 评论 -
CF133D
CF1332 D. Walk on Matrix题意给你一个k(0≤k≤105)k (0≤k≤105)k(0≤k≤105)要求你构造一个n×mn \times mn×m的矩阵满足下列条件1≤n,m≤5001≤n,m≤5001≤n,m≤5000≤ai,j≤3⋅1050≤a_{i,j}≤3⋅10^50≤ai,j≤3⋅105由以上dp式子推出来的dp[n][m]dp[n][m]dp[n...原创 2020-04-03 17:31:45 · 259 阅读 · 0 评论 -
CF1331F
CF1331F Elementary!题意给你字符串s(1≤s≤10)s(1\leq s \leq 10)s(1≤s≤10),判断是否为元素周期表里的大写元素。思路由Elementary结合题目中样例HOMELES DOCTOR WASTON先把题意得出。然后再打一张化学元素的表。(dbqwsdd)这篇博客主要是让自己知道这样的匹配有两种做法,一个是DP,一个是DFS。初始化f[...原创 2020-04-02 16:31:46 · 336 阅读 · 0 评论 -
CF1328D
D. Carousel题意给你一个长度为n(n>3)n(n>3)n(n>3)的数组,首尾相连形成一个环。对每个位置进行涂色,要求相邻但不相同数字的填涂颜色不同,相邻且相同的位置颜色可以相同也可以不相同。要求所用颜色的最大数字最小,颜色由数字来表示。思路分类讨论全部为同一种颜色,则全为1即可。至少有一个位置与其相邻的数字相同,则我们可以从这个相同的位置剖开这个环,形成...原创 2020-03-29 11:52:00 · 200 阅读 · 0 评论 -
Educational Codeforces Round 84 (Rated for Div. 2)
C. Game with Chips题意给你一个n,m的棋盘,再给你k个棋子的坐标,让你移动经过接下来对应的k个位置。可以所有棋子到一个格子。当移动到边界的时候再往边界走则原地不动。求所有棋子走的路线能够满足题意的,步数不超过2nm次。LRUD对应移动的方向,输出构造的路径。思路构造题当时打的时候一直在想如何构造最优路径,是BFS呢还是啥。现在想想当时真的蠢,打一个EDU第C题...原创 2020-03-26 21:45:41 · 176 阅读 · 0 评论 -
CF1326 D2 - Prefix-Suffix Palindrome (Hard version) manacher
D2 - Prefix-Suffix Palindrome (Hard version)题意给你一个字符串S,找出最长的满足以下条件的字符串T:长度不超过∣S∣T为回文字符串存在两个字符串a和b(可能为空),T=prea+sufb 给你一个字符串S,找出最长的满足以下条件的字符串T:\\长度不超过|S|\\T为回文字符串\\存在两个字符串a和b(可能为空),T=pre_a+suf_b给你...原创 2020-03-22 16:32:27 · 301 阅读 · 0 评论 -
CF1225E
E. Rock Is Push题意出发点(1,1)到终点(n,m),只能向右和向下走,路上有障碍物用’R’表示,空地用’.'表示,你的力气巨大无比可以推动所有箱子,只要箱子不贴墙。求有多少种走法?思路棋盘dpDP题一般都会满足三个条件:子问题重叠、无后效性、最优子结构性质。这道题满足以上三点。dp[i][j]dp[i][j]dp[i][j]的方案数可由dp[i][j−1]dp[i]...原创 2020-03-15 23:17:31 · 183 阅读 · 0 评论 -
Codeforces Round #628 (Div. 2)
C. Ehab and Path-etic MEXs题意给两两节点放一个数字(0~n-2 唯一)给你一棵树,求所有任意两节点相连的路以外的路上的数字的最小值最小思路构造若一个点连了三条边及以上,则这个点的边从最小值开始赋值。其他边从最大点开始赋值。证明:一个点连了三条边及以上,那么任取uv所在路一定不可能经过该点的所有边,那么显然最大值为这个点所连边的第三小值2。代码#inclu...原创 2020-03-15 17:07:35 · 2214 阅读 · 0 评论 -
Codeforces Round #627 (Div. 3)
Vova有一个奇怪的睡眠习惯,Vova会睡上刚好N次。第i次他会在他上一次醒来的a[i]个小时后睡觉。你可以假设Vova是在开头醒来的(初始时间是第0小时)。每次Vova刚好睡一天(换言之,h小时,这个h小时不是平时的24小时,题中会给出)。当他的第i次睡眠在l点和r点之间进行时被称之为好睡眠。它可以控制自己在第i次睡眠预定的a[i]小时后睡觉,也可以是在a[i]-1小时后。求这n次睡眠他的好睡眠最多可以有多少次?原创 2020-03-14 03:12:22 · 237 阅读 · 0 评论 -
1312E Array Shrinking
1312E Array Shrinking题意:给你 n(1≤n≤500)n(1\leq n\leq 500)n(1≤n≤500) 长的数组,你可以任意次操作使得满足 a[n]=a[n+1]a[n]=a[n+1]a[n]=a[n+1] 的两个数被替换为 a[n]+1a[n]+1a[n]+1 ,求数组最小长为多少。思路:区间 dpdpdp观察 nnn 的范围,可知这道题可以采用 O(n3)...原创 2020-03-12 20:51:53 · 201 阅读 · 0 评论 -
Educational Codeforces Round 83 (Rated for Div. 2) D - Count the Arrays
D - Count the Arrays题意:m个数排成先严格单调递增再严格单调递减 求有多少种排列方式,答案对 998244353998244353998244353 取模思路:组合数学 lucaslucaslucas定理从mmm个数中取出n−1n-1n−1个数,其中一个数为最大的数,他是不能有2个的,所以能从剩下的n−2n-2n−2个数中选一个数放到最大数的另一边。我做的时候想不通...原创 2020-03-10 01:35:39 · 167 阅读 · 0 评论 -
Codeforces Round #626 (Div. 2, based on Moscow Open Olympiad in Informatics)
B.Count Subrectangles思路:存因子到数组中遍历因子算满足该因子个数的行和另一因子个数的列分别为多少相乘即可。#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int,int>P;const double eps = 1e-8;cons...原创 2020-03-08 02:10:25 · 127 阅读 · 0 评论 -
Codecraft-20 (Div.2)
最近状态很差,A题居然WA了一发,然后B没仔细观察规律前缀是否翻转和后缀的长度有关,C其实是会做的,但是不够自信又纠结在B,以后要是卡题要快点跳,不能畏惧题目,面对困难要深呼吸,或者去洗把脸冷静下再思考。D题不难,但是我写的程序总有一点bug,写的又慢,我的程序实现能力需要锻炼,做题还要再冷静一些,其实说实话div2 ABC三题都是思维为主,应该要快速的A掉,后面就稍微有点算法实现能力的需要了,...原创 2020-03-06 01:32:24 · 161 阅读 · 0 评论 -
Ozon Tech Challenge 2020 (Div.1 + Div.2, Rated, T-shirts + prizes!)
C. Kuroni and Impossible Calculation题意:∏1≤i<j≤n|ai−aj| 范德蒙行列式的值为多少?心得:我这个人是一个很马虎的人,这样是不对的,以后读题要快准狠,抓住关键点。这道题就是这样,关键点在于1≤m≤1000,我觉得慢了一个多小时才写出来这题的原因就在于读题没抓住要点,作为一个好的ACMer以后读题不仅要快,还要找寻不一样的烟火(key)...原创 2020-03-04 01:18:33 · 189 阅读 · 0 评论 -
Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round)
B - Journey Planning思路:找规律当时想了很久想了个O(n^2)的dp,然后想如何优化,其实这些数减去他们下标的差值是一样的。#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#...原创 2020-03-02 03:49:42 · 165 阅读 · 0 评论 -
Codeforces Round #624 (Div. 3)
D - Three Integers题意:t组样例每组输入a,b,c;你可以任意给某个数+1 或-1记为一次操作,求满足b能被a整除,c能被b整除的条件下,操作次数最少。思路:暴力出奇迹,打表过样例~,这道题直接暴力就能过。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int ...原创 2020-02-25 17:26:44 · 318 阅读 · 0 评论 -
Codeforces Round #623 (Div. 2, based on VK Cup 2019-2020 - Elimination Round, Engine)
B. Homecoming题意:A->B 花费a元B->A 花费b元有p元求要走到点i,从i上车能在p内到终点。思路:1.二分答案2.倒着模拟比赛的时候我两种都想到了,问题在于代码实现能力过弱,有必要加强模拟的训练了。二分答案做法:#include<bits/stdc++.h>using namespace std;typedef long lo...原创 2020-02-24 18:08:58 · 210 阅读 · 0 评论 -
CF1313 C2. Skyscrapers (hard version)
C2. Skyscrapers (hard version)题意:求一个新的序列,使得其合最大,要求新的序列满足该序列的最大值左右两边(可以只有一边)呈非升序列。思路:单调栈C1 n小模拟暴力O(n^3)也过了C2是在C1的基础上优化。我们遍历i,默认i为最小值,求左侧的面积(假设宽都为1)再反向遍历求右侧每个i对应点的面积将两个面积加起来-掉i那块的面积(不然的话会算两个i那块...原创 2020-02-24 17:04:26 · 519 阅读 · 0 评论 -
Educational Codeforces Round 80 (Rated for Div. 2) D. Minimax Problem
题意:给你n个数组每个数组有m个元素,任选i、j构造一个长度为m的数组取i和j数组里的最大值,使得新的数组的最小值最大。思路:二分验证答案+二进制这里将>=mid的数转换为1其余为0用二进制的或运算检验实在是秒啊!二分使用条件:1.满足单调性2.易验证#include<bits/stdc++.h>using namespace std;typedef long...原创 2020-02-19 06:08:54 · 106 阅读 · 0 评论 -
CF618 E. Water Balance
题意:给你n个数,你可以任选L,R,使得L到R范围内的数取平均值,要求使得输出的字典序最小,并输出修改后的数。思路:分块 每块的平均值一样后一块平均值小于前一块则后一块归入前一块,前一块重新赋平均值,后一块消失。#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll mod = 1...原创 2020-02-19 02:20:40 · 178 阅读 · 0 评论 -
CF618 DIV2 D - Aerodynamic
题意:题意没读懂,翻译下来要理解为判断是否为中心对称图形。PS:希望以后自己不要害怕读英文题,不要害怕英文多,有时候可以去猜一下题意,其实画画图形大概就能猜到了。思路:中心对称图形:绕任意一点旋转180度之后不变的图形。n为奇数 non为偶数 若 第i个点和第n/2 + i (i<n/2) 的中点都相同则为中心对称图形。坑点:一开始我用的ll存u和v,挂在第53个点,因为奇数...原创 2020-02-19 01:13:21 · 145 阅读 · 0 评论 -
Codeforces Round #621 (Div. 1 + Div. 2)
C. Cow and Message题意:给你一个字符串s,其中间隔为等差数列的子串最多有多少?思路:DP显然该子串只有可能是长度为1或者2的时候子串的数量能尽可能的多。因为能够成长度为的2以上的子串一定可以先构成长度为2的子串,显然还多了很多限制。故本题只要计算统计长度为1和2的子串的最大的数量即可。#include<bits/stdc++.h>using name...原创 2020-02-18 23:04:58 · 320 阅读 · 0 评论 -
1304D Shortest and Longest LIS
题意:第一行输入T,有T组测试。每组测试为一行,输入一个n 和长度为n-1的仅由< >组成的字符串,<代表左边的比数要比右边的数小,反之大。输出:第一行:用1~n结合符号构造一种最短的LIS(Longest Increasing Subsequence 最长上升子序列)并输出如何构造。第二行:用1~n结合符号构造一种最长的LIS(Longest Increasing S...原创 2020-02-17 23:17:37 · 208 阅读 · 0 评论