codeforces
codeforces 题解
Amber_lylovely
这个作者很懒,什么都没留下…
展开
-
Codeforces Global Round 12 CF1450A-H 题解
月初打的比赛,今天才把坑填完了。。A.要不出现trygubtrygubtrygub的子序列,只需要给sss排序即符合条件了。代码:#include <iostream>#include <cstdio>#include <cmath>#include <algorithm>const int maxn=1007;using namespace std;int T,n;char s[maxn];int main(){ scan原创 2020-12-26 14:44:06 · 261 阅读 · 0 评论 -
Codeforces Round #691 (Div. 1) CF1458A-F 题解(待更新)
第一次打div1,比较自闭。。A.因为gcd(x,y)=gcd(x,y−x)gcd(x,y)=gcd(x,y-x)gcd(x,y)=gcd(x,y−x)。那么gcd(a1+x,a2+x,a3+x....)=gcd(a1+x,a2−a1,a3−a1,....)gcd(a_1+x,a_2+x,a_3+x....)=gcd(a_1+x,a_2-a_1,a_3-a_1,....)gcd(a1+x,a2+x,a3+x....)=gcd(a1+x,a2−a1,a3−a1,....)所以只需要给a原创 2020-12-21 11:13:57 · 403 阅读 · 0 评论 -
Educational Codeforces Round 100 (Rated for Div. 2) CF1463A-F 题解
A.如果以777为一个周期,可以知道我们可以打999点伤害。所以要想完美过关,怪的生命值和一定是999的倍数。同时我们可以算出需要sum/9sum/9sum/9个周期才能解决,因此每一个怪的生命值都要大于等于sum/9sum/9sum/9。代码:#include <iostream>#include <cstdio>using namespace std;int a,b,c,T;int main(){ scanf("%d",&T); while (T原创 2020-12-18 10:16:31 · 597 阅读 · 0 评论 -
Codeforces Round #690 (Div. 3) CF1462A~F 题解
A.根据题目给的构造方式逆推出对应的下标。前(n+1)/2(n+1)/2(n+1)/2位为奇数位,后面的为偶数位,前后顺序相反。代码:#include <iostream>#include <cstdio>const int maxn=307;using namespace std;int n,T;int a[maxn],b[maxn];int main(){ scanf("%d",&T); while (T--) { scanf("%原创 2020-12-16 09:05:32 · 276 阅读 · 0 评论 -
Codeforces Round #689 (Div. 2) CF1461A-F 题解
A.显然可以构造出S=aaa...abcabc....S=aaa...abcabc....S=aaa...abcabc....,即前kkk个字符都为aaa,后面为abcabcabc的循环。代码:#include <iostream>#include <cstdio>using namespace std;int T,n,k;int main(){ scanf("%d",&T); while (T--) { scanf("%d%d",&n原创 2020-12-12 13:49:06 · 266 阅读 · 0 评论 -
CF1446D Frequency Problem
题目大意:给定一个长度为nnn的序列,要求一个子区间,使得出现次数最多的数不唯一,要求子区间的最大长度。Easy:n<=2e5,ai<=min(n,100)n<=2e5,a_i<=min(n,100)n<=2e5,ai<=min(n,100)Hard:n<=2e5,ai<=nn<=2e5,a_i<=nn<=2e5,ai<=n分析:首先有一个结论是,假设原区间出现次数最多的数为xxx,合法区间出现最多的数其中一个必然是xxx原创 2020-12-06 20:45:33 · 198 阅读 · 0 评论 -
Codeforces Round #688 (Div. 2) CF1453A-F 题解
A.答案就是在行和列中同时出现的数的个数。代码:#include <iostream>#include <cstdio>const int maxn=107;using namespace std;int n,m,T,x,ans;int a[maxn];int main(){ scanf("%d",&T); while (T--) { scanf("%d%d",&n,&m); for (int i=1;i<=10原创 2020-12-06 20:34:07 · 245 阅读 · 0 评论 -
Educational Codeforces Round 99 (Rated for Div. 2) CF1455A-G 题解
A.题目大意:设f(x)f(x)f(x)等于把xxx颠倒后的数,给定nnn,对于任意0<x<=n0<x<=n0<x<=n,求xf(f(x))\frac{x}{f(f(x))}f(f(x))x有多少个不同的值。n<=10100,T<=100n<=10^{100},T<=100n<=10100,T<=100分析:答案就是nnn的位数,十分显然。代码:#include <iostream>#include <原创 2020-12-01 23:48:54 · 272 阅读 · 0 评论 -
CF1452G Game On Tree
题目大意:有一棵nnn个节点的树,其中Alice的船在xxx节点,Bob有很多船,分别在点y1,y2,...,yny_1,y_2,...,y_ny1,y2,...,yn,每个回合每个船都可以走向相邻的节点或者不走,可以多个船在同一个点。求x=1,2,...,nx=1,2,...,nx=1,2,...,n时,Alice在不会与Bob的船在同一点的情况下游戏最多可以进行多少个回合。分析:假设经过了kkk个回合,Bob的船都不能到点ppp,那么从ppp向周围走k−1k-1k−1步的点都可以至少进行k原创 2020-12-01 22:11:45 · 229 阅读 · 0 评论 -
CF1430G Yet Another DAG Problem 状压dp
题目大意:给你一个nnn个点,mmm条边的DAG,每条边(x,y)(x,y)(x,y)有权值wiw_iwi,要求给每个点赋值,使得对于每条边∑i=1m(ax−ay)∗wi\sum_{i=1}^{m} (a_x-a_y)*w_i∑i=1m(ax−ay)∗wi最小,且ax−ay>0a_x-a_y>0ax−ay>0。n<=18n<=18n<=18分析:考虑把图反向,然后从111开始填,那么111可以填的位置就是没有入度的位置。那么考虑我们当前要填的数字为原创 2020-11-28 00:00:17 · 201 阅读 · 0 评论 -
CF1452E Two Editorials 差分
题目大意:给定nnn与mmm个区间[li,ri][l_i,r_i][li,ri],满足1<=li<=ri<=n1<=l_i<=r_i<=n1<=li<=ri<=n。给定kkk,你可以选择两个长度为kkk的区间,[a,b][a,b][a,b]与[c,d][c,d][c,d]。对于每个区间[li,ri][l_i,r_i][li,ri],它的贡献是与[a,b][a,b][a,b]和[c,d][c,d][c,d]交集的大小的最大值。输出所有区间贡原创 2020-11-25 20:32:24 · 122 阅读 · 0 评论 -
Codeforces Round #686 (Div. 3) CF1454A~F 题解
A.题目大意:输出一个长度为nnn的错排。n<=100,T<=100n<=100,T<=100n<=100,T<=100分析:直接令a[i]=i+1,a[n]=1a[i]=i+1,a[n]=1a[i]=i+1,a[n]=1输出即可。#include <iostream>#include <cstdio>using namespace std;int main(){ int n,T; scanf("%d",&T);原创 2020-11-25 20:18:20 · 210 阅读 · 0 评论 -
CF1425F Divide Powers 构造乱搞
题目大意:给你一个由2n2^n2n组成的集合,2i2^i2i有cnticnt_icnti个。当iii不为0时,我们可以使用一次操作把2i2^i2i变成两个2i−12^{i-1}2i−1。有2类操作,修改cnticnt_icnti,或者询问至少要多少次操作后有不少于kkk个元素小于等于2x2^x2x。n<=30,q<=2e5n<=30,q<=2e5n<=30,q<=2e5分析:对于小于等于2x2^x2x的元素,进行一次操作可以增加一个元素;而对于大于2x2^原创 2020-11-24 13:00:04 · 117 阅读 · 0 评论