![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
codeforces
文章平均质量分 72
HeartFireY
可能是ACMer、JXNU计算机科学协会前会长
展开
-
Codeforces Round #763 (Div. 2) D.Robot Cleaner Revisit 期望/思维
|——>传送门<——|题目描述给定一张n×mn \times mn×m的网格图,给定机器人起始位置和垃圾位置,每次机器人可以从(x,y)(x ,y)(x,y)向(x+1,y+1)(x + 1, y + 1)(x+1,y+1)运动,碰壁后对方向取反。每次可以将移动到的位置所在的横行和竖列清空掉,现在告诉你当机器人与垃圾同行同列时有p%p\%p%概率清掉垃圾。问清理垃圾所需移动次数的期望。题解首先,机器人移动的过程一定存在循环节,也就是说从某点出发一直按照题目规则移动,一定会回到该点(证明略原创 2022-04-29 18:38:39 · 538 阅读 · 0 评论 -
Codeforces Global Round A-F1
A - Log Chopping容易发现多个数和111个数的操作次数为求和关系。于是考虑一个数的情况,显然与x−1x - 1x−1操作次数的奇偶性有关。那么对所有数统计操作次数判断奇偶性即可。#include <bits/stdc++.h>#define int long longusing namespace std;inline void solve(){ int n; cin >> n; int cnt = 0; for(int i = 1;原创 2022-04-25 14:35:03 · 226 阅读 · 0 评论 -
Codeforces Round #781 (Div. 2) ABCD
A - GCD vs LCM题目要求a+b+c+d,gcd(a,b)×gcd(c,d)=c×da + b + c + d, \gcd(a, b) \times \gcd(c, d) = c \times da+b+c+d,gcd(a,b)×gcd(c,d)=c×d,那么直接等号两侧都是111即可。#include <bits/stdc++.h>#define int long long#define endl '\n'using namespace std;inline voi原创 2022-04-21 22:10:17 · 259 阅读 · 0 评论 -
Codeforces Round #783 (Div. 2) ABCD
A.Direction Change可以证明最佳策略一定可以转化为走正方形对角阵然后再盘旋走到底。于是特判222的情况(拐不了)然后输出即可。#include <bits/stdc++.h>#define int long long#define endl '\n'using namespace std;const int N = 1e5 + 100;int ans[N];inline void solve(){ int n, m; cin >> n &g原创 2022-04-20 16:04:54 · 429 阅读 · 0 评论 -
Codeforces Round #782 (Div. 2) ABCD
打昆明打傻了,不会写题了QWQA - Red Versus Blue要求连续的RRR的数量最少,也就是用BBB尽可能的将RRR隔开,显然bbb个BBB最多分成b+1b+1b+1段,那么直接将RRR平均分配到每一段即可。#include <bits/stdc++.h>#define int long long#define endl '\n'using namespace std;const int N = 1e5 + 10;int a[N];inline void so.原创 2022-04-19 16:35:03 · 474 阅读 · 0 评论 -
The 2021 ICPC Asia Taipei Regional Programming Contest
待补:C.Community Service/D.Largest RemainderA. Ice Cream直接O(1)O(1)O(1)计算即可。#include <bits/stdc++.h>#define int long longusing namespace std;inline void solve(){ int n, x, y; cin >> x >> y >> n; int by = (n / (x + y)) .原创 2022-04-11 15:22:12 · 1464 阅读 · 0 评论 -
Codeforces Round #780 (Div. 3) ABCDEF
A - Vasya and Coins给定a,ba, ba,b表示aaa个111和bbb个222,要求求出最小不能被表示出的数。2×b+1,2×b2 \times b + 1, 2 \times b2×b+1,2×b可以表示a+2×ba + 2 \times ba+2×b范围内的所有数字(除111之外),那么缺1(a=0)1(a =0)1(a=0)时输出111,如果aaa不是000,此时因为有111也能被标示,所以直接输出a+2×b+1a + 2 \times b + 1a+2×b+1。#includ原创 2022-04-01 16:31:24 · 430 阅读 · 0 评论 -
The 2020 ICPC Asia Macau Regional Contest J.Jewel Grab 线段树+双向链表模拟
思路对于每个位置的宝石,分别维护pre[i]pre[i]pre[i](同色前一宝石所在位置)和nxt[i]nxt[i]nxt[i](同色后一宝石所在位置)。注意到kkk很小,那么对于每次询问,我们可以从开始点往后找,查询当前点是否有同色点位于前面且位于[s,n][s,n][s,n]内,有的话比较大小,决定是否跳过。对于区间单点维护操作,我们需要对preprepre和nxtnxtnxt进行更新,更新的过程类似于单链表,每个颜色单独构成一条链:删除原有元素(讨论:元素位于序列头部、尾部、中间)。添加原创 2022-03-30 21:57:16 · 1154 阅读 · 0 评论 -
Codeforces Round #779 (Div. 2)
A. Marin and Photoshoot既然要求相邻两人111男111女,那么对于000000中间暴力插222个111,对于010010010中间暴力插111个111即可。#include <bits/stdc++.h>#define int long longusing namespace std;inline void solve(){ int n = 0; cin >> n; string s; cin >> s; int原创 2022-03-28 16:30:47 · 367 阅读 · 0 评论 -
Educational Codeforces Round 125 (Rated for Div. 2) ABCD
我服了。A. Integer Moves一共三种情况:当前点已经为终点两点之间直线长度为整数,走欧拉距离两点之间直线长度不为整数,走曼哈顿距离#include <bits/stdc++.h>#define int long longusing namespace std;const int N = 1e5 + 10;inline void solve(){ int x, y; std::cin >> x >> y; if(.原创 2022-03-23 11:53:27 · 242 阅读 · 0 评论 -
Codeforces Round #778 (Div. 1 + Div. 2, based on Technocup 2022 Final Round)
/*^⣿⣿⣿⣿⣿⣿⡷⣯⢿⣿⣷⣻⢯⣿⡽⣻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠸⣿⣿⣆⠹⣿⣿⢾⣟⣯⣿⣿⣿⣿⣿⣿⣽⣻⣿⣿⣿⣿⣿⣿⣿^⣿⣿⣿⣿⣿⣿⣻⣽⡿⣿⣎⠙⣿⣞⣷⡌⢻⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣿⣿⣿⣿⣿⡄⠹⣿⣿⡆⠻⣿⣟⣯⡿⣽⡿⣿⣿⣿⣿⣽⡷⣯⣿⣿⣿⣿⣿⣿^⣿⣿⣿⣿⣿⣿⣟⣷⣿⣿⣿⡀⠹⣟⣾⣟⣆⠹⣯⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢠⡘⣿⣿⡄⠉⢿⣿⣽⡷⣿⣻⣿⣿⣿⣿⡝⣷⣯⢿⣿⣿⣿⣿^⣿⣿⣿⣿⣿⣿⣯⢿⣾⢿⣿⡄⢄⠘⢿⣞⡿⣧⡈⢷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢸⣧⠘⣿⣷⠈⣦⠙⢿⣽⣷⣻⣽⣿⣿⣿⣿⣌⢿⣯⢿⣿⣿⣿^原创 2022-03-21 17:37:00 · 514 阅读 · 0 评论 -
Codeforces Round #773 (Div. 2)
A.Hard Way排序找最高两个点判断一下#include <bits/stdc++.h>#define int long longusing namespace std;struct node{ int x, y; const bool operator< (const node &a){ return y < a.y; }}a[10];inline void solve(){ for(int i = 1; i <= 3;原创 2022-02-24 13:16:07 · 592 阅读 · 0 评论 -
Educational Codeforces Round 123 (Rated for Div. 2) ABCDE
A.Doors and Keys写个if,然后疯狂复制粘贴。#include <bits/stdc++.h>using namespace std;inline void solve(){ string s; cin >> s; bool st[3] = {0, 0, 0}, flag = true; for(int i = 0; i <= s.size(); i++){ if(s[i] == 'r') st[0] = true原创 2022-02-23 15:49:39 · 187 阅读 · 0 评论 -
Codeforces Round #770 (Div. 2) E. Fair Share 二分图染色 补
思路题目给定mmm个整数序列,要求尝试找到一种分类方式,将每个序列分到222个可重集合中。要求在分类完成后,两个集合的完全相同。首先考虑一定非法的情况:容易发现:对于某个序列长度为奇数的情况,一定不存在解(无法对半分)对所有的数字开桶记录,如果存在某个数字的出现次数为奇数,则一定不存在对等的分配方案我们可以对每个序列的编号向其元素编号连无向边,可以发现分L,RL,RL,R符合二分图的性质,那么直接遍历二分图进行染色即可。注意,由于序列的编号和元素的编号会发生重叠,因此我们对元素的编号需要进行原创 2022-02-22 12:01:08 · 551 阅读 · 0 评论 -
Codeforces Round #772 (Div. 2) E 二分图染色+拓扑序
思路根据题目描述,显然对于两辆存在关系的车:不可相遇:两车应相反而行一定相遇:两车应相对而行可以发现,两种关系下,车的的方向一定不相同。那么我们可以构造一张二分图,然后对图进行0−10-10−1染色判断合法性。然后考虑排序问题,显然对于存在关系的车(设坐标为xL,xRx_L, x_RxL,xR):不可相遇:xL>xRx_L > x_RxL>xR一定相遇:xL<xRx_L < x_RxL<xR我们规定被染色为000的节点都向左走,染色为1原创 2022-02-21 23:54:30 · 215 阅读 · 0 评论 -
Codeforces Round #772 (Div. 2) ABCD
A - Min Or Sum根据题目要求可以发现,要使得总和尽可能地小,应尽可能将选择的(ai,aj)(a_i, a_j)(ai,aj)变为(ai∣aj,0)(a_i | a_j, 0)(ai∣aj,0)。那么统计111的位数求和或直接所有元素求或即可。#include <bits/stdc++.h>#define int long longinline void solve(){ int ans = 0, n = 0; std::cin >> n;原创 2022-02-21 18:37:46 · 215 阅读 · 0 评论 -
Codeforces Round #771 (Div. 2) ABCD|E
A.Reverse思路给出一个[1,n][1, n][1,n]的排列, 要求翻转一次区间,使字典序最小。一次操作字典序最小,那么操作后从头开始的顺序序列长度应该+1+1+1。那么显然是找到第一个错位的位置,该位置当前点数字一定大于其坐标(证明略)。然后将该位置上应该放置的数字位置找到,区间反转即可,这样可以保证顺序序列增加一个数字,使字典序最小。Accepted Code#include <bits/stdc++.h>#define int long longusing names原创 2022-02-16 01:01:00 · 211 阅读 · 0 评论 -
Codeforces Round #449 (Div. 1) C.珂朵莉树模板
珂朵莉树模板,要求支持区间幂次和,注意细节别写挂了。注意 会爆long long!!!#include <bits/stdc++.h>using namespace std;#define int long longstruct node{ int l, r; mutable int val; node (int lpos): l(lpos) {} node (int lpos, int rpos, int vall): l(lpos), r(rpo原创 2022-02-15 20:54:38 · 287 阅读 · 0 评论 -
CF1638E. Colorful Operations 珂朵莉树+差分树状数组
CF1638E. Colorful Operations 珂朵莉树题意给定长度为nnn的序列,初始所有元素置000。要求支持以下三个操作:Color(l, r, c):将区间[l,r][l, r][l,r]区间染色为ccc;Add(c, x):将颜色为ccc的元素全部+x+x+x;Query(i):查询第iii个元素的值。思路含有多次区间赋值区间赋值操作,首先考虑珂朵莉树维护序列染色。那么首先需要大喊(雾)珂朵莉是世界上最幸福的女孩!!!首先建立颜色序列并初始化为000,然后对于每个原创 2022-02-15 20:33:01 · 765 阅读 · 0 评论 -
Codeforces Round #767 (Div. 2) ABCD
日常卡CA - Download More RAM题目大意(换了个世界观)给定nnn个道具,体积为a[i]a[i]a[i],效果为b[i]b[i]b[i],当前容量为kkk。每次可以选择一个体积小于等于当前容量的物品,选择后容量扩大为k+b[i]k + b[i]k+b[i]。问容量最大可以扩大到多大。思路直接排序优先选择体积小&&效果大的物品,然后贪心选择直到无法再选为止。复杂度取决于排序O(nlogn)O(n \log n)O(nlogn)。Accepted Code#.原创 2022-01-23 16:22:30 · 531 阅读 · 1 评论 -
Codeforces Round #764 (Div. 3) 补 G. MinOr Tree 最小或树
Codeforces Round #764 (Div. 3) G. MinOr Tree 最小或树原创 2022-01-19 15:26:36 · 592 阅读 · 0 评论 -
Codeforces Round #764 (Div. 3) VP ABCD
Codeforces Round #764 (Div. 3) VP ABCD[A - Plus One on the Subset] [B - Make AP] [C - Division by Two and Permutation] [D - Palindromes Coloring]原创 2022-01-19 14:04:59 · 169 阅读 · 0 评论 -
Codeforces Round #766 (Div. 2)补题 E.Not Adding 数论GCD
Codeforces Round #766 (Div. 2)补题 E.Not Adding 数论GCD原创 2022-01-18 20:52:22 · 937 阅读 · 0 评论 -
Codeforces Round #766 (Div. 2) VP ABC
Codeforces Round #766 (Div. 2)A-Not Shading B-Not Sitting C-Not Assigning原创 2022-01-17 21:51:44 · 269 阅读 · 0 评论 -
Educational Codeforces Round 121 (Rated for Div. 2) 补E
Educational Codeforces Round 121 (Rated for Div. 2) E - Black and White Tree原创 2022-01-17 19:20:54 · 275 阅读 · 0 评论 -
Educational Codeforces Round 121 (Rated for Div. 2) ABCD
Educational Codeforces Round 121 (Rated for Div. 2) ABCD[A - Equidistant Letters][B - Minor Reduction][C - Monsters And Spells][D - Martial Arts Tournament]原创 2022-01-17 13:39:19 · 696 阅读 · 2 评论 -
Educational Codeforces Round 118 div.2 ABC
Educational Codeforces Round 118 div.2 ABC原创 2021-12-02 14:30:55 · 3038 阅读 · 0 评论 -
Codeforces Round #757 Div.2 C.Divan and bitwise operations 组合数学
Problem Analysis题目机翻:有一次,Divan分析了一个由nnn非负整数组成的序列a1,a2,…,ana_1, a_2, \ldots, a_na1,a2,…,an,如下所示。他考虑了序列aaa的每个非空子序列,计算了其元素的位XOR,并将所有的XOR相加,得到了序列aaa的惬意度。如果ccc可以通过删除几个(可能是零或全部)元素从ddd中得到,那么序列ccc就是序列ddd的子序列。例如,[1, 2, 3, 4][1, \, 2, \, 3, \, 4][1,2,3,4], [2, 4原创 2021-11-26 22:06:16 · 825 阅读 · 0 评论 -
Codeforces Round #752 Div.2 A,B,C,D
A.Era题目描述:题目给定一个序列aaa,每次可以选择任意一个位置前/后插入任一元素,要求在最少的操作次数内使序列aaa满足ai≤ia_i \le iai≤i,也就是序列中元素下标小于等于元素的值。思路分析:考虑如何构造最小操作。首先插入的元素我们可以人为保证一定满足ai≤ia_i \le iai≤i,如果序列只有一个不满足条件的元素aja_jaj,那么必定要操作aj−ja_j - jaj−j次;如果有多对元素不满足情况,我们此时应当选取最靠近序列起始点的不满足条件的元素,在其前面插入元素。由原创 2021-11-01 22:46:23 · 152 阅读 · 0 评论 -
Educational Codeforces Round 116 (Rated for Div. 2) A.B.C
A.AB Balance 思维题目大意:BA(s)BA(s)BA(s)代表字符串中bababa的数量,AB(s)AB(s)AB(s)代表字符串中ababab的数量。每次可以选择sss中的一个字符替换为a,ba,ba,b,求在最小操作次数下让BA(s)=AB(s)BA(s)= AB(s)BA(s)=AB(s)后得到的字符串。思路分析:题目要求使ababab和bababa平衡,那么我们考虑什么时候能够达成平衡条件:对于一个字串单位abaabaaba或babbabbab,其ababab和bababa的数量是平原创 2021-10-31 13:21:15 · 207 阅读 · 0 评论 -
Codeforces Round #750 (Div. 2) A.B.C.D
签到四题~~~A.Luntik and Concerts题目大意:给定三个整数a,b,ca,b,ca,b,c,分别表示现在拥有的数字1,2,31,2,31,2,3的个数,至少拥有一个。要求将这堆数字分成两部分,求两部分差值的最小值。思路分析:首先我们需要明确:由于三个数字至少有一个。那么这些数字一定能够组成[1,sum][1, sum][1,sum]之间的全部数字。由于要使插值最小,那么我们需要让两个部分的和尽可能地接近。显然对于sumsumsum为偶数的情况下,一定可以组成sum2\frac ..原创 2021-10-28 01:03:38 · 188 阅读 · 0 评论 -
Codeforces Round #748 (Div. 3) C.D
C.Save More Mice**题目大意:**在数轴上的111位置为起始位置,有一只猫;nnn为终点,有一个洞。数轴上有一些老鼠。每次先选择一只老鼠向右移动一位,然后猫向右移动一位。当猫当前位置有老鼠,老鼠会被吃掉;如果老鼠移动到洞,则老鼠会被保护起来。求最多能保护多少只老鼠?**思路:**贪心思想,每次只能移动一步,那么要救尽可能多的老鼠,应当从最右侧的老鼠开始移动,那么按照这个顺序,开始模拟这个过程即可。#include<bits/stdc++.h>using namespace原创 2021-10-14 21:04:25 · 162 阅读 · 0 评论 -
Codeforces Round #748 (Div. 3) A.B
A.Elections**题目大意:**三个人参加选举,给出当前三个人的得票数,得票最高者胜出。要求求出对于三个人最少应该再得几票胜出。**思路:**对于当前的人,求出剩下两人中的较大值,然后直接求差+1即可。#include <bits/stdc++.h>#define int long longusing namespace std;inline void solve(){ int a, b, c; cin >> a >> b >>原创 2021-10-14 14:09:54 · 223 阅读 · 0 评论 -
Educational Codeforces Round 115 (Rated for Div. 2) C.D
C.Delete Two Elements题目大意:给定一个nnn个元素的序列,定义kkk为∑i=1na[i]n\frac{\sum^{n}_{i = 1}a[i]}{n}n∑i=1na[i](元素和/nnn=平均数),现在要求你删除222个元素,使删除前后的序列的kkk值不变,求删除的方案数目。思路:考虑删除后使原序列大小不变的情况:两个元素相加等于二倍平均数。我们对式子进行移项,可得:n×sumn=n×∑i=1na[i]n \times \frac{sum}{n} = n \times \su原创 2021-10-13 23:14:49 · 200 阅读 · 0 评论 -
Educational Codeforces Round 115 (Rated for Div. 2) A.B
A.Computer Game题目大意:给定一个2∗n2*n2∗n的迷宫,从左上角出发到达右下角,每次只能向相邻方格跳。判断能否到达。思路:如果存在一列都为障碍物,那么无论怎么跳也无法到达终点#include <bits/stdc++.h>using namespace std;signed main(){ int t = 0; cin >> t; while(t--){ int n = 0; cin >> n;原创 2021-10-13 20:41:34 · 140 阅读 · 0 评论 -
Codeforces Round #747 (Div. 2) A.B
A.Consecutive Sum Riddle**题目大意:**给定整数nnn,求一个(l,r)(l,r)(l,r)使得∑i=lri=n\sum^{r}_{i = l}i = n∑i=lri=n。思路:脑筋急转弯。看看数据范围就知道了对于输入的nnn,令l=1−n, r=nl = 1 - n,\ r = nl=1−n, r=n即可。#include <bits/stdc++.h>#define int long longusing namespace std;原创 2021-10-09 23:46:57 · 157 阅读 · 0 评论 -
Codeforces Round #745(Div.2) C.Portal 二维前缀和
**题目大意:**给定一个矩阵,问最少通过多少部能够打出一个长大于等于555,宽大于等于444的传送门来。**思路:**数据范围400400400,暴力枚举四条边必然会超时,因此考虑优化方式-二维前缀和:翻转次数 = 中间区域111数量 + 四边中000的数量 - 四个角如果有000就减相应个数;对于每个点(x,y)(x, y)(x,y)分别从x+4,y+3x+4,y+3x+4,y+3入手开始扩展,每次计算总前缀和与内部前缀和相减,便是反转次数;可以剪枝。如果当前已扫描到答案且扩展后的答案更大,那原创 2021-10-08 20:15:28 · 235 阅读 · 3 评论 -
Codeforces Round #745(Div.2)A.B
A.CQXYM Count Permutationshttps://codeforces.com/contest/1581/problem/A**思路:**长度为2n2n2n的数组全排列的数量除以222,即为所求排列数目。对于除222操作,可以在阶乘的时候直接从333开始乘,就略过除222的步骤了#include <bits/stdc++.h>#define int long longusing namespace std;const int MOD = 1e9 + 7;i原创 2021-10-08 19:46:34 · 173 阅读 · 0 评论 -
Codeforces Round #746 (Div. 2) C.D
C.Bakry and PartitioningProblem Analysis题目描述:对于给定的一棵树,判断能否通过删除111~k−1k-1k−1条边,使删边后的森林中的每个连通块的异或和相等。思路:思路比较巧妙:对于异或操作,我们容易知道对于任意整数nnn:n xor n=0n\ xor\ n = 0n xor n=0 ;0 xor n=n0\ xor\ n = n0 xor n=n;1,2→n x原创 2021-10-05 14:37:41 · 175 阅读 · 0 评论 -
Codeforces Round #746 (Div. 2) A、B
A.Gamer HemoseProblem Analysis题目大意:给你一堆技能的伤害值ai{a_i}ai,以及敌人的血量HHH。要求同一技能不能连续重复使用。求至少使用多少次技能能够讲敌人的血量HHH降到000及以下?思路:很明显的贪心,尽可能选取伤害大的技能打敌人,但是又不能连续使用同意技能。那么退而求其次就最大技能和次大技能交替使用。除法计算出需要多少次最大技能+次大技能(向下取整),如果这些次数的技能不足以杀死敌人,那么就额外单独判断一次是否达到。Accepted Code#inclu原创 2021-10-04 21:28:10 · 135 阅读 · 0 评论