![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
atcoder
pubgoso
这个作者很懒,什么都没留下…
展开
-
AtCoder Beginner Contest 173 (D-F)
题目链接D.Chat in a Circle手玩一下发现,除了最大的数,其他的数最多能加两次。#include <bits/stdc++.h>using namespace std;typedef long long LL;const int N = 2e5 + 10;#define fi first#define se second#define pb push_back#define wzh(x) cerr<<#x<<'='<<x<原创 2020-07-06 13:36:45 · 255 阅读 · 0 评论 -
AtCoder Beginner Contest 168 E - ∙ (Bullet)
题目链接思路:根据几种情况进行分类讨论1.a=b=0:选了这个就不能选别的了。2.a=0:这类数不能和 b=0的一起选3.b=0:这类数不能和 a=0的一起选4.other:我们称满足x情况的数为第x类数。具体:先将每个数的a,b取一下gcd化简一下。然后枚举每个数被选的情况下,[1,i-1]有多少种合法选择使得不与i冲突。设tot为[1,i-1]中第4类数的合法选择数。那么如果第i个数属于第2类数,那么选了第i个之后,显然[1,i-1]中的第2类数可以选任意多个,第3类数只能选0个,第原创 2020-05-18 12:12:44 · 285 阅读 · 0 评论 -
AtCoder Beginner Contest 167 题解
题目链接A.模拟#include <bits/stdc++.h>using namespace std;typedef long long LL;const int N = 2e5 + 10;#define fi first#define se second#define pb push_back#define mp make_pairchar a[N],b[N];int main() { ios::sync_with_stdio(false); cin>&g原创 2020-05-11 12:22:23 · 280 阅读 · 0 评论 -
AtCoder Beginner Contest 159 F.Knapsack for All Segments
题目链接思路:考虑每个和为s的组合 的贡献。显然贡献为L*(n-R+1) ,L,R 为组合的左右两端的位置。如果枚举当前R位置 ,那么只要我们知道所有合法情况的L值之和那么就可以统计出答案了。考虑dp。dp[i][j]dp[i][j]dp[i][j]为第i位,和为j的L之和每个数aia_iai当成起点时dp[i] [ai]=idp[i]~ [{a_i}]=idp[i]&nb...原创 2020-03-23 18:19:15 · 411 阅读 · 0 评论 -
Panasonic Programming Contest 2020 E - Three Substrings
思路:枚举三个串的相对位置,check一下合法性,取一个最小答案。每个合法的情况的答案计算:统计一下A串左右各有多长即可。#include <bits/stdc++.h>using namespace std;typedef long long LL;const int N = 2e5 + 10;#define fi first#define se second#def...原创 2020-03-17 16:37:43 · 162 阅读 · 0 评论 -
AtCoder Beginner Contest 158 E.Divisible Substring
题目链接思路:设sis_isi为[i,n][i,n][i,n]构成的十进制数。若[l,r][l,r][l,r]构成的十进制数是p的倍数,则:sl−sr+110n−r=0 (mod p)\frac{s_l-s_{r+1}}{10^{n-r}}=0~~(mod~~p)10n−rsl−sr+1=0 (mod &n...原创 2020-03-09 00:01:43 · 183 阅读 · 0 评论 -
AtCoder Beginner Contest 158 F.Removing Robots
题目链接大意:给你n个机器人,每个机器人在xix_ixi,位置,如果被激活了就会移动到xi+di−1x_i+d_i-1xi+di−1,然后被销毁,中途遇到的机器人都会被激活且移动。有一种操作是:选择一个未被激活的机器人并激活它。你可以执行任意次数操作(还有未激活的)问最终会有多少种不同的全都没被激活机器人集合。思路:显然先把每个机器人iii激活后到能影响的最远的机器人编号LiL_i...原创 2020-03-08 23:43:59 · 329 阅读 · 0 评论 -
AtCoder Beginner Contest 156 E - Roaming
题目链接首先,如果k>=n的话,显然我们可以构造出所有状态,相当于n个相同球放到n个相同盒中,盒子可以空。即C(2∗n−1n−1)C(_{2*n-1}^{n-1})C(2∗n−1n−1).k<n的情况即必须要有n−kn-kn−k个盒子非空,我们把所有情况算出来去掉不合法情况即可。不合法情况:有x个盒子非空x∈[0,n−k−1]x\in[0,n-k-1]x∈[0,n−k−1],...原创 2020-02-23 14:04:42 · 514 阅读 · 2 评论 -
AtCoder Beginner Contest 149 E - Handshake
题目链接问题转化:给你一个数组aaa,构建一个矩阵bbb,使得bij=ai+ajb_{ij}=a_i+a_jbij=ai+aj,你要从矩阵中选m个数使得和最大。显然二分一下第n2−m+1n^2-m+1n2−m+1小的数是啥,然后用总和减掉前n2−mn^2-mn2−m小的数就好了。注意一下细节:#include<bits/stdc++.h>using namespace ...原创 2019-12-29 21:12:03 · 582 阅读 · 0 评论 -
AtCoder Beginner Contest 146 F - Sugoroku(线段树+思维)
题目链接题意:给你长度n+1n+1n+1的一个010101串,下标[0,n+1][0,n+1][0,n+1] , 你从000出发,每次走的步数 的范围[1,m][1,m][1,m],让你走到n+1n+1n+1,000的地方可以走, 111的地方不能走,使得步数最少的情况下,方案的字典序最小。输出这个方案。无解输出−1-1−1我们先用线段树维护出每个000走到终点最少多少步记为数组fff,然后从...原创 2019-11-28 12:35:38 · 355 阅读 · 0 评论 -
AtCoder Beginner Contest 146 E - Rem of Sum is Num(思维)
题目链接给你一个长度为nnn的序列,和一个kkk.询问你有多少个区间[l,r][l,r][l,r],满足∑i=lrai mod k=r−l+1\sum_{i=l}^ra_i ~~mod~~k=r-l+1∑i=lrai mod k=r−l+1我们把题目要求的式子转化一下就是∑i=lrai−(r−l+1)...原创 2019-11-28 12:27:10 · 341 阅读 · 1 评论 -
AtCoder Beginner Contest 143 E.Travel by Car(最短路)
题目链接大意:给你一个无向带权图,给你一些询问点,s,ts,ts,t,你从s出发有lll升的油,走xxx距离耗费xxx油,你可以在点上加油,不能在路径上加油,问你到ttt最少加几次油。显然的最短路问题,预处理出所有起点到其他地方的最少加油次数即可。注意优化复杂度。。。。。。。#include<bits/stdc++.h>using namespace std;typedef...原创 2019-10-22 11:27:35 · 764 阅读 · 0 评论