
【OJ】AtCoder
文章平均质量分 87
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【AtCoder】AtCoder Grand Contest 046
比赛链接点击打开链接官方题解点击打开链接Problem A. Takahashikun, The Strider可以发现,任意时刻,玩家均位于以前两次操作路径的中垂线的交点上。因此,答案即为使得玩家朝向与初始时第一次一致的时刻,即360gcd(X,360)\frac{360}{gcd(X,360)}gcd(X,360)360时间复杂度 O(LogV)O(LogV)O(LogV) 。#include<bits/stdc++.h>using namespace std;con原创 2020-06-24 09:13:16 · 1560 阅读 · 4 评论 -
【AtCoder】Tokio Marine & Nichido Fire Insurance Programming Contest 2020
比赛链接点击打开链接官方题解点击打开链接Problem A. Nickname输出 s1s2s3s_1s_2s_3s1s2s3 即可。时间复杂度 O(∣S∣)O(|S|)O(∣S∣) 。#include<bits/stdc++.h>using namespace std;const int MAXN = 3e5 + 5;typedef long long ll;template <typename T> void chkmax(T &x, T y)原创 2020-06-17 09:19:06 · 956 阅读 · 0 评论 -
【AtCoder】AtCoder Grand Contest 045
比赛链接点击打开链接官方题解点击打开链接Problem A. Xor Battle考虑维护使得最后一个玩家获胜的数字集合 SSS ,初始时, S={0}S=\{0\}S={0} 。考虑最后一个回合 iii :若该回合是 0 号玩家的回合,则有 S′={x∣x∈S}∪{x⊕Ai∣x∈S}S'=\{x\mid x\in S\}\cup\{x\oplus A_i\mid x\in S\}S′={x∣x∈S}∪{x⊕Ai∣x∈S} ;若该回合是 1 号玩家的回合,则若 Ai∈SA_i\in SAi原创 2020-06-11 11:35:54 · 985 阅读 · 3 评论 -
【AtCoder】NOMURA Programming Competition 2020
比赛链接点击打开链接官方题解点击打开链接Problem A. Study Scheduling计算两个时刻的时间间隔,减去 KKK 。时间复杂度 O(1)O(1)O(1) 。#include<bits/stdc++.h>using namespace std;const int MAXN = 3e5 + 5;typedef long long ll;template <typename T> void chkmax(T &x, T y) {x = max原创 2020-05-31 12:13:05 · 875 阅读 · 0 评论 -
【AtCoder】AtCoder Grand Contest 041
比赛链接点击打开链接官方题解点击打开链接Problem A. Table Tennis Training若 A,BA,BA,B 奇偶性相同,则答案为 B−A2\frac{B-A}{2}2B−A 。否则,答案为 Min{A+B−1,2N−A−B+1}2\frac{Min\{A+B-1,2N-A-B+1\}}{2}2Min{A+B−1,2N−A−B+1} 。时间复杂度 O(1)O(1...原创 2019-12-30 13:50:44 · 847 阅读 · 0 评论 -
【AtCoder】AtCoder Grand Contest 036 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【A】 Triangle【思路要点】注意到对于任意一个格点三角形,我们都可以找到一个点,将其平移至原点处后,另外两个点在同一象限内,或在该象限相邻的坐标轴上。因此,可以不失一般性地假定一个点在 (0,0)(0,0)(0,0) 处。令另外两点的坐标为 (x,y),(a,b)(x,y),(a,b)(x,y),(a,b)...原创 2019-08-09 21:08:44 · 499 阅读 · 0 评论 -
【AtCoder】AtCoder Grand Contest 037 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【A】 Dividing a String【思路要点】设一个划分中第一次出现长度超过 222 的 SiS_iSi 的位置为 iii 。则可以通过将 SiS_iSi 划分为更小的串,以及将 SiS_iSi 的某一个后缀拼接至 Si+1S_{i+1}Si+1 的方式使得第一次出现长度超过 222 的 SiS_iS...原创 2019-08-19 11:14:41 · 855 阅读 · 0 评论 -
【AtCoder】AtCoder Grand Contest 034 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【A】 Kenken Race【思路要点】首先, AAA 到 CCC 中与 BBB 到 DDD 中不能存在连续的两个障碍物。其次,若 D<CD<CD<C ,需要额外满足 BBB 到 DDD 中存在至少一个空位两侧均为空位。时间复杂度 O(N)O(N)O(N) 。【代码】#...原创 2019-06-03 09:43:54 · 827 阅读 · 0 评论 -
【AtCoder】Tenka1 Programmer Contest 2019 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【C】 Stones【思路要点】枚举最后的石子分布,用前缀和优化计算代价。时间复杂度 O(N)O(N)O(N) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 2e5 + 5;typedef long lon...原创 2019-04-21 13:27:55 · 672 阅读 · 0 评论 -
【AtCoder】ExaWizards 2019 题解
【比赛链接】点击打开链接【题解链接】点击打开链接**【A】**Regular Triangle【思路要点】判断是否 A=B=CA=B=CA=B=C 。时间复杂度 O(1)O(1)O(1) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 2e5 + 5;ty...原创 2019-03-31 11:21:18 · 742 阅读 · 0 评论 -
【AtCoder】AtCoder Grand Contest 032 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【A】 Limited Insertion【思路要点】考虑时间倒流,对于一个位置 iii ,若 ai=ia_i=iai=i ,则可以将其删去,问是否能将序列删空。不难发现每次删除最大的 iii ,使得 ai=ia_i=iai=i 是唯一的最优策略,模拟之,若无法操作则无解。时间复杂度 O(N2)O(N^2)O(...原创 2019-03-26 17:03:00 · 778 阅读 · 0 评论 -
【AtCoder】AtCoder Regular Contest 099 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【C】Minimization【思路要点】显然我们每次操作的区间内都会包含1。因此\(Ans=1+\lceil\frac{N-K}{K-1}\rceil\)。时间复杂度\(O(1)\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 100005;tem...原创 2018-06-25 15:01:40 · 852 阅读 · 0 评论 -
【AtCoder】AtCoder Regular Contest 096 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【C】Half and Half【思路要点】每次考虑购买两个AB披萨是否会节省,如果会,则购买,并重复这个考虑的过程。否则结束这个考虑的过程,购买剩余所需的A披萨和B披萨。时间复杂度\(O(min\{X,Y\})\)。【代码】#include<bits/stdc++.h>using namespace std;const int MA...原创 2018-06-09 21:07:12 · 399 阅读 · 0 评论 -
【AtCoder】AtCoder Regular Contest 097 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【C】K-th Substring【思路要点】注意到\(K\)很小,我们考虑每次找到该字符串最小的子串,并在后续的过程中不再考虑该子串。对于以\(i\)号字符开头的子串\(S_{i,i}\),\(S_{i,i+1}\),\(S_{i,i+2}\)……,显然有\(S_{i,i}<S_{i,i+1},S_{i,i+2}<……\)。因此,在每一...原创 2018-06-09 10:34:48 · 578 阅读 · 0 评论 -
【AtCoder】AtCoder Regular Contest 098 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【C】Attention【思路要点】用前/后缀和分别统计头领在每个位置时前后需要转向的人数。时间复杂度\(O(N)\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 300005;template <typename T> void chk...原创 2018-06-08 13:44:31 · 532 阅读 · 0 评论 -
【AtCoder】AtCoder Regular Contest 092 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【C】2D Plane 2N Points【思路要点】按照纵坐标从小到大的顺序来考虑每一个点。若当前点为红点,那么将其横坐标加入当前可用的红点的横坐标集合。若当前点为蓝点,令其与当前可用的红点集合中横坐标恰小于当前点横坐标的红点匹配,并将该红点标记为不可用,若不存在这样的红点,则放弃该蓝点的匹配。用std::set维护当前可用的红点的横坐标集合,时间...原创 2018-06-14 20:51:54 · 402 阅读 · 0 评论 -
【AtCoder】AtCoder Regular Contest 093 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【C】Traveling Plan【思路要点】删除一个点本质上只改变了\(O(1)\)对相邻关系,在总和的基础上调整即可。时间复杂度\(O(N)\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 100005;template <typename...原创 2018-06-13 20:58:43 · 470 阅读 · 0 评论 -
【AtCoder】AtCoder Regular Contest 094 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【C】找到原序列的两个中位数\(X\),\(Y\),不妨令\(X≤Y\)。若\(X_i≤X\),\(B_i=Y\),否则\(B_i=X\)。时间复杂度\(O(NLogN)\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 200005;template...原创 2018-06-12 18:23:40 · 366 阅读 · 0 评论 -
【AtCoder】AtCoder Regular Contest 095 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【C】Many Medians【思路要点】找到原序列的两个中位数\(X\),\(Y\),不妨令\(X≤Y\)。若\(X_i≤X\),\(B_i=Y\),否则\(B_i=X\)。时间复杂度\(O(NLogN)\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN ...原创 2018-06-11 20:43:34 · 388 阅读 · 0 评论