比赛----codeforces比赛题解
长沙橘子猫
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #599 (Div. 2) DE题解
D. 0-1 MST题意:给一个无向图,如果u,vu,vu,v有边相连,那么他们的边权为1,否则为0,求最小生成树解法:不难发现最小生成树权值其实可以转化为该无向图的补图的联通块个数减一,那我们就来求补图联通快好了,我们用一个setsetset存所有没有用过的点,我们开始任意选择一个setsetset里的点开始bfsbfsbfs,假设出队的点为uuu,我们枚举setsetset的点vvv,如...原创 2019-11-07 15:58:02 · 444 阅读 · 1 评论 -
Codeforces Round #547 (Div. 3) EF1F2G 题解
E. Superhero Battle题意:设sum[i]为di数组的前缀和,求一个最小的 i ,使得 sum[i]+i/n*sum[n]+H<=0。水题。#include<bits/stdc++.h>#define ll long longusing namespace std;const int maxn=2e5+1;ll a[maxn],sum[max...原创 2019-03-20 02:08:22 · 211 阅读 · 0 评论 -
Codeforces Round #261 (Div. 2)
A. Pashmak and Garden题意:给你两个点坐标,你可以任意选取两个点(坐标均为整数),看能否构造一个正方形。水题#include<bits/stdc++.h>#define ll long longusing namespace std;int tmp;void print(int x1,int y1,int x2,int y2){ prin...原创 2019-03-12 14:03:20 · 164 阅读 · 0 评论 -
Codeforces Round #262 (Div. 2)
A. Vasya and Socks题意:你有n个东西,妈妈每隔m天给你一个东西,你一天能用一个,求多少天后你的东西全部用完。水题,用n/m顺便统计天数直到n<m即可。#include<bits/stdc++.h>using namespace std;int main(){ int n,m,ans=0; cin>>n>>...原创 2019-03-13 14:02:33 · 171 阅读 · 4 评论 -
Codeforces Round #555 (Div. 3) ABC1C2DEF 题解
// 为了给学弟学妹更好的理解,我尽量写详细一点。A. Reachable Numbers题意:设f(x)为 x+1 这个数去掉后缀0的数,现在给出n,问经过无数次这种变换后,最多能得到多少个不同的数。思路:我们用一个数组标记用过的数x,然后开始循环变换x,直到x变成一个曾经用过的数就结束,那么问题来了,x最大可能有1e9,普通数组标记不了,这个时候我们可以用map来标记 x,stl ...原创 2019-04-27 03:08:08 · 455 阅读 · 0 评论 -
Educational Codeforces Round 64 DEF 题解
没想到这次比赛除了最后一题B题最难…D. 0-1-Tree题意:给一棵所有边权只能为0或1的树,定义点对(x,y)合法的条件是 x!=y 且 x 到 y 的路径中经过了权值为1的边后不会出现权值为0的边,求所有合法点对。思路:设d[u][0]为u到u子树所有节点路径为全0或者先0后1的的个数,d[u][[1]]为路径全1个数,假设对于u的子树v,如果w(u,v)=0,那么显然d[u][...原创 2019-05-03 15:36:53 · 164 阅读 · 0 评论 -
Codeforces Round #558 (Div. 2) B1B2D 题解
感觉最近找到状态了?(反手就是fst)B1. Cat Party (Easy Edition)题意:有最多10种颜色,你要求一个最大的x,使得在前x个颜色中移除某个颜色,所有出现过的颜色出现次数相等。思路:用十个前缀和数组分别保存10种颜色出现次数的前缀和,暴力枚举x,然后记录10种颜色出现次数,然后排个序,如果只有一种颜色 或者 只有一种颜色出现一次其他颜色出现次数相同 或者 只有...原创 2019-05-10 02:34:03 · 426 阅读 · 0 评论 -
Educational Codeforces Round 67 DEG 题解
D. Subarray Sorting题意:给你两个数组a,b,你可以在第一个数组里面任意取一些区间进行排序,问是否能够把数组a变成数组b。思路:我们用一颗最小值线段树存 a 数组,枚举 b 数组,假设当前枚举到了 bi,我们先找到 a 数组中第一个等于 bi 的值的下标 k,然后在线段树中查询[1, k]最小值,如果最小值 < bi,就说明,k 前面有比 ak 小的数导致 ak ...原创 2019-07-01 17:34:51 · 411 阅读 · 6 评论 -
Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) DEF题解
好久没写cf题解了,这场cf写了两个线段树,其中还有一个竟然写搓了,导致没能上橙,5555,看来省赛前是注定不能橙了。D. Restore Permutation解法:我们从小到大枚举iii,然后从线段树中找到最右边的一个0的位置kkk然后a[k]=ia[k]=ia[k]=i,然后我们清空这个值,然后在线段树中将区间[k+1,r][k +1, r][k+1,r]减去iii即可, 线段树入门题...原创 2019-08-26 14:42:57 · 616 阅读 · 7 评论 -
Educational Codeforces Round 72 (Rated for Div. 2) DE题解
昨晚差点被D卡死,然后E题题意一直没读对,导致线段树水题给漏了D. Coloring Edges题意:给你一个有向图,你要给每一条边涂色,问最少需要多少种颜色,使得如果存在环,那么环上的颜色不能全部相同。解法:首先我们用拓扑排序判环,无环一种颜色够了,如果有环,其实最多两种颜色足够,因为一个有向边构成的环,肯定存在有向边 u -> v,u 大于 v,也肯定存在有向边 u -> ...原创 2019-09-06 14:20:43 · 303 阅读 · 0 评论 -
Educational Codeforces Round 73 (Rated for Div. 2) DF题解
还想小号上分来着,结果F题翻车,最后两分钟才绝杀F,导致水题没切,上分变上坟了D Make The Fence Great Again题意:有n个木板,每个木头都有高度和提升一个单位高度的花费,一个木头可以多次提升高度,要求相邻木头高度不能相同,求最少总花费。解法:因为只是要求相邻木头不能等高,所以每个木头最多只用升两次高度就行,那我们设d[i][j]d[i][j]d[i][j]为前iii...原创 2019-09-20 02:09:51 · 656 阅读 · 0 评论 -
Codeforces Round #544 (Div. 3) DEF1F2题解
D. Zero Quantity Maximization题意:你可以设D为任意实数,使得D*ai+bi为0的数量最多,并求出数量。思路:很简单,把每组ai bi,都除以他们的gcd然后把ai bi统一换成ai为正数再hash就可以了,不过有一些ai bi为0的细节,也不难去处理,水题。#include<bits/stdc++.h>#define ll long lon...原创 2019-03-08 02:00:05 · 221 阅读 · 0 评论 -
Codeforces Round #545 (Div. 2) EF
E. Museums Tour题意:有n个城市m条有向边,一周有d天,每个城市的博物馆在d的周期内定时开放和关闭,现在你在起点 1,每隔一天你必须走到相邻的某个城市去,你有无限时间,每个点每条边你也可以走无数次,求最多能欣赏多少个不同的博物馆。借鉴这位大佬:hwim思路:我们把每个点拆成d个点,第 i 个点代表第 i 天走到了这个城市,那么对于每条边 u->v,我们枚举天数 i,...原创 2019-03-15 02:19:07 · 217 阅读 · 0 评论 -
Educational Codeforces Round 61 CDEFG题解
C. Painting the Fence题意:有q个区间,区间范围为1-n,要求q-2个区间所能覆盖的最大的范围。思路:先把所有区间都加上1,得到总范围sum,然后暴力枚举两个区间,sum减去这两个区间所能得到的值的和答案max一下即可,可以用点为1和点为2的前缀和数组快速求出删除两个区间后的总范围。#include<bits/stdc++.h>using names...原创 2019-03-07 16:11:28 · 373 阅读 · 0 评论 -
Codeforces Round #499 (Div. 2) DEF 题解
和轩少一起Virtual participation了这次比赛,A题读错题花了大量时间导致只有4题就滚粗了。D. Rocket题意:让你猜一个位置x,范围在1-m,每次你询问系统y,如果x<y,系统会回答-1,x=y回答0,x>y回答1,但是系统有可能会说假话,你只知道系统真假性的回答是周期n(n<=30),要求在至多60次询问找到 x 的值。(回答0肯定是真话)思路...原创 2018-12-21 15:11:28 · 354 阅读 · 0 评论 -
Codeforces Round #527 (Div. 3) CDEF题解
C. Prefixes and Suffixes题意:有一个长度为 n 的的字符串,现在给出长度1到n-1的该串前缀和后缀(混合的),求哪些串是前缀,哪些是后缀。思路:为啥我感觉这套比赛除了E题,就C题最难.....先找到两个最长的串,假设其中一个为前缀另外一个为后缀即可。#include<bits/stdc++.h>using namespace std;char ...原创 2018-12-19 12:23:44 · 354 阅读 · 0 评论 -
Codeforces Round #507 div2 DE题解
C. Timetable题意:还没读懂.....D. Subway Pursuit题意:交互题,你要求一个点的位置,这个点在1到n之中,每次可以移动至多k步,你每次可以询问系统一个区间 [ L , R ],系统会告诉你这个点在该时刻是否在区间内,要求至多用4500次求出这个点的坐标。思路:先用二分缩小目标点的可确定区间,直到区间缩小的一定值后,随机询问某个点,看答案是否是它,若不是...原创 2018-12-12 21:42:10 · 181 阅读 · 0 评论 -
Codeforces Round #526 (Div. 2) CDE题解
由于这是猝死场,所以没打,第二天刷了刷发现挺简单的。(不对,是第一天...)C. The Fair Nut and String题意:让你根据已给字符串的下标构造一些数列,要求:数列元素必须由已给串的字符 'a' 的下标严格递增构造,且数列两个相邻元素对应串的两个下标中间必须要有 'b' ,求有多少种构造方法。思路:把字符串换成这样aabaaabaabaa(有多个b就把它缩为一个),相...原创 2018-12-11 15:40:10 · 1114 阅读 · 0 评论 -
Codeforces Round #525 (Div. 2) CDEF题解
C. Ehab and a 2-operation task题意:给一个长度为n的数列,你有两种操作 :1 i x 表示从a1到ai每个数都加x,2 i x 表示从a1到ai每个数都模等于x,你至多有n+1次操作,求怎么把原数列构造成一个严格递增的数列。思路:我们先把所有数都加上一个足够大的数(远大于n),假设前面 i 个数我已经构造成 1 2 3.... i 的数列,又因为后面的数远大...原创 2018-12-05 00:40:34 · 271 阅读 · 0 评论 -
Codeforces Round #535 (Div. 3) E1 E2 F题解
纪念下cf第一次akE1. Array and Segments (Easy version)题意:有一个长度为n的序列a,有m次操作,每个操作有个区间可以使得序列a在该区间所有数减一,你可以任意顺序任意选择一些操作,使得序列a(最大值-最小值)最大,求这个最大的值。思路:我首先把所有区间按照左区间从小到大排序(左区间相同,右区间从小到大排序),然后一个一个暴力更新区间的值,更新(ma...原创 2019-01-24 11:14:11 · 345 阅读 · 3 评论 -
Codeforces Round #533 (Div. 2) CDE题解
C. Ayoub and Lost Array题意:给你一个长度为n的序列,序列每个元素大小限制在[ l , r ],求有多少种不同的序列,序列的和是3的倍数。思路:定义x为[l,r]中3的倍数的个数,y为[l,r]中3的倍数+1的个数,z为[l,r]中3的倍数+2的个数,假设走到了第 i 个元素,当前有a种长度为i-1的序列和是3的倍数,b,c分别代表序列和是3的倍数+1,3的倍数+2,...原创 2019-01-20 22:08:58 · 295 阅读 · 1 评论 -
Codeforces Round #541 (Div. 2) BDEF题解
B. Draw!题意:要你求总共有多少次比分相同。思路:其实很水,就是求min(x[i],y[i])-max(x[i-1],y[i-1])+1的总和,但是直接这样写边界点可能会算重,因此写了个动态开点线段树。最后区间总和即答案。#include<bits/stdc++.h>#define ll long longusing namespace std;const i...原创 2019-02-24 00:23:33 · 228 阅读 · 1 评论 -
Codeforces Round #546 (Div. 2)
A. Nastya Is Reading a Book题意:给你若干个从小到大的区间,让你判断x所在区间离最后一个区间差多少。签到题#include<bits/stdc++.h>using namespace std;int l[105],r[105];int main(){ int n,k,ans; cin>>n; for(i...原创 2019-03-14 01:30:48 · 165 阅读 · 1 评论 -
Codeforces Round #263 (Div. 2)
感觉今天的题有点难,做的也有点爽。A. Appleman and Easy Task题意:如果有一个格子,周围四个格子要是有奇数个o,那么就输出NO。签到题#include<bits/stdc++.h>#define ll long longusing namespace std;const int maxn=1e5+10;char s[105][105];in...原创 2019-03-14 20:35:47 · 187 阅读 · 0 评论 -
Codeforces Round #529 (Div. 3) CDEF题解
C. Powers Of Two题意:给你一个数n,你要找出是否存在k个 2^i 这样的数,使得这k个数的和是n。思路:水题,如果n换成二进制1的个数小于k,那么可以把高一位的数换成2*低一位的数,比如1000换成两个100即可。#include<bits/stdc++.h>using namespace std;map<int,int>mp;map&l...原创 2018-12-28 11:51:51 · 244 阅读 · 0 评论