思维
ACkingdom
这个人很懒,什么都没有留下
展开
-
Codeforces Round #673 (Div. 2) D. Make Them Equal
题目链接题意:给你一个长度为n的数组和3n次的操作数,每次操作可以选择任意两个不同的i,j,将ai=ai−x·i,aj=aj+x·i.思路:我们不难想到,如果一个数想加上某个数,那么他可以加上不超过第一个数大小的任意数,但如果想减,就只能减去下标的倍数,所以我们只需要从第二位开始将每一个数先加到下标的倍数再减为0,这样就能将所有数全部转移到第一位上,最后将每一个数全都变成相同数即可(记得判断能否整除)。代码:#include<bits/stdc++.h>#define int lo原创 2020-10-02 13:33:54 · 227 阅读 · 0 评论 -
Grakn Forces 2020 B. Arrays Sum
题目链接题意:给你一个长度为n的a数组,问你这个数组最少能由几个只含k个不同数的b数组对应位置相加的得到。思路:第一个b数组可以得到a中前k个不同的数,但是从第一个b数组之后的数组必须有一个数为0来让前面已经变过的数保持不变,所以后面的每个b数组只能变出k-1个不同的数,所以我们算出a中不同的数的个数之后再用刚刚的方法算出结果即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_s原创 2020-10-02 13:02:19 · 335 阅读 · 1 评论 -
Codeforces Round #673 (Div. 2) B. Two Arrays
题目链接题意:给你n个数,你可以将他们分到任意的两个数组中,求怎样可以使得分别两个数组中的两两和为T的对数的数量最小。思路:遍历数组,如果该数没有被标记,那么标记该数并标记T-该数,flag数组中标记的数不同,表示这两个数不在同一个数组中,最后直接输出所有数的标记即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(原创 2020-09-28 14:06:00 · 231 阅读 · 0 评论 -
Codeforces Round #673 (Div. 2) C. k-Amazing Numbers
题目链接题意:给你两个数n,k,求从1~n之间的每一个i在长度为n的数组中的,所有连续的长度为i的数组的公共最小值,如果没有重复值则输出-1.思路:遍历求每个相同的数之间的距离,即求出i到达几时这些数成为公共值,然后遍历所有求得的公共值,输出最小值即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);#def原创 2020-09-28 13:58:16 · 569 阅读 · 2 评论 -
Codeforces Round #667 (Div. 3) D. Decrease the Sum of Digits
题目链接思路:预处理每一位的10次方,从最末尾开始逐位上升,累计操作数,每次上升之前都计算所有位之和,如果满足条件直接break,否则继续进一升位(防止999999情况出现),输出操作数即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);#define pb push_back#define ll long原创 2020-09-08 01:30:37 · 169 阅读 · 0 评论 -
Codeforces Round #667 (Div. 3) B. Minimum Product
题目链接思路:要确保两个数之间的差值最大,那么我们可以从一个一直减小然后再从另一个开始,讨论两种情况谁的收益最大即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);#define pb push_back#define ll long longconst int N=2e5+5;const int M=2原创 2020-09-08 01:19:37 · 160 阅读 · 0 评论 -
Codeforces Round #666 (Div. 2) D. Stoned Game(博弈论)
题目链接思路:如果最大值超过其他所有值则先手赢,当石子总数为偶数时后手赢否则先手赢,因为相当于每一轮都要拿走两个。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+9;const int M=1e4+5;const double eps=1e-8;const int mod=1原创 2020-08-31 23:10:58 · 203 阅读 · 0 评论 -
Codeforces Round #666 (Div. 2) C. Multiples of Length
题目链接思路:如果n为1直接输出两个不改变和一个变为0即可,如果n大于1那么第一次操作就将1到n-1同时加上a[i]*(n-1)将他变成n的倍数最后再用第三次操作将所有的n个数组变成0即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+9;const int M=1e4+5;原创 2020-08-31 22:50:30 · 171 阅读 · 0 评论 -
Codeforces Round #666 (Div. 2) B. Power Sequence(暴力枚举)
题目链接思路:从1开始枚举c的大小再用一个循环从1跑到n枚举c的每一个次方,再求出需要操作的最小值即可,如果c的某个次方和a[i]的差超出1e15(数据范围内能够操作的最大值)那么这个c之后的c就不可能了,直接break然后输出之前求得的最小值即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const in原创 2020-08-31 22:34:11 · 173 阅读 · 0 评论 -
Educational Codeforces Round 94 (Rated for Div. 2) D. Zigzags
题目链接思路:遍历找相等,然后找相等的数之间的数和之后的相等数累加起来即可。代码:#include<bits/stdc++.h>#pragma GCC optimize("Ofast")#define endl '\n'#define null NULL#define ls p<<1#define rs p<<1|1#define fi first#define se second#define mp make_pair#define pb pu原创 2020-08-29 23:55:18 · 303 阅读 · 0 评论 -
Educational Codeforces Round 94 (Rated for Div. 2) B. RPG Protagonist(贪心)
题目链接思路:枚举每一种情况找出剩余质量最少的情况即放入的最多的情况即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+7;const int M=1e4+5;const double eps=1e-8;const int mod=1e9+7;const int inf=原创 2020-08-29 21:37:41 · 155 阅读 · 0 评论 -
Educational Codeforces Round 94 (Rated for Div. 2) C. Binary String Reconstruction
题目链接思路:字符串s[i]如果为0,那么w[i]两端也一定为0,标记完这些位置之后特判两端长度为x的位置是否有冲突即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+7;const int M=1e4+5;const double eps=1e-8;const int m原创 2020-08-29 20:28:57 · 164 阅读 · 0 评论 -
Codeforces Round #665 (Div. 2) C. Mere Array(思维,gcd)
题目链接思路:所有是最小值的倍数的数都可以进行交换,其他数的位置不会发生改变,所以我们只需要看这些数排序之后与排序之前的位置是否一样即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e6+7;const int M=2e4+5;const double eps=1e-8;con原创 2020-08-23 00:34:06 · 166 阅读 · 0 评论 -
Educational Codeforces Round 93 (Rated for Div. 2) C. Good Subarrays
题目链接思路:将每一位上的数组-1,将问题转化为求区间和为0的问题,再维护一个前缀和即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=210;const int M=2e4+5;const double eps=1e-8;const int mod=998244353;cons原创 2020-08-21 01:52:36 · 183 阅读 · 0 评论 -
Educational Codeforces Round 93 (Rated for Div. 2) B - Substring Removal Game
题目链接思路:分析可知双方每次操作一定是取连续1最多的区间消掉,贪心即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=210;const int M=2e4+5;const double eps=1e-8;const int mod=998244353;const int in原创 2020-08-21 01:47:25 · 170 阅读 · 0 评论 -
Educational Codeforces Round 93 (Rated for Div. 2) A. Bad Triangle
题目链接思路:判断两个最小值是否大于最大值即可代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=210;const int M=2e4+5;const double eps=1e-8;const int mod=998244353;const int inf=0x7fffffff;原创 2020-08-21 01:41:34 · 115 阅读 · 0 评论 -
Codeforces Round #664 (Div. 2) C. Boboniu and Bit Operations
题目链接思路:暴力从0开始枚举答案,如果有一个答案满足对任意一个ai均能找到一个bj,使得(a[i] & b[j]) | x) == x,输出即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=210;const int M=2e4+5;const double eps=1e原创 2020-08-20 01:19:53 · 185 阅读 · 0 评论 -
Codeforces Round #664 (Div. 2) B. Boboniu Plays Chess
题目链接思路:走过的方格是不能再走的,每个方格都要走一遍,输出路径。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=355;const int M=2e4+5;const double eps=1e-8;const int mod=998244353;const int inf=0原创 2020-08-20 01:12:28 · 145 阅读 · 0 评论 -
Codeforces Round #664 (Div. 2) A. Boboniu Likes to Color Balls
题目链接思路:想要满足题意则有:所有颜色的球的数量都是偶数且至多只有一种颜色的球的数量是奇数。所以我们只需要探讨初始情况和进行一次操作后是否满足上述条件即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=355;const int M=2e4+5;const double eps=1原创 2020-08-20 01:04:50 · 149 阅读 · 0 评论 -
洛谷-构造题专项训练-P5595 【XR-4】歌唱比赛
题目链接代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e6+7;const int M=2e4+5;const double eps=1e-8;const int mod=998244353;const int inf=0x7fffffff;const double pi=3.1原创 2020-08-19 01:20:44 · 270 阅读 · 0 评论 -
【杭电多校2020】第八场1003.Clockwise or Counterclockwise
题目链接思路:如果输出结果是顺时针则叉积方向向内,当结果是逆时针时叉积方向向外。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e6+7;const int M=2e4+5;const double eps=1e-8;const int mod=998244353;const i原创 2020-08-19 00:12:00 · 128 阅读 · 0 评论 -
Codeforces Global Round 10 C. Omkar and Waterslide
题目链接题意:每次操作可以使得一个非递减区间全部++,问你最少操作几次可以使得数组递增。思路:我们只需要让每一个递增的开头都大于上一个递增的结尾即可,因为我们每次操作都可以将这个递增结尾之后的所有数都++,这样不会影响后面的判断,也不会多++。所以具体操作就是遍历然后遇到递减的情况就将结果加上s[i-1]-s[i]。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(fal原创 2020-08-18 02:17:50 · 204 阅读 · 0 评论 -
Codeforces Global Round 10 D. Omkar and Bed Wars
题目链接题意:枕头大战,RL分别代表攻击方向,每次操作可以修改一个人的方向使得枕头大战的所有人都满足逻辑:如果只有一个人打你那么你必须打他,如果两边的人都没有打你或者是都在打你那么你打谁都行。思路:我们可以很容易的判断出三个连续的R或者是L都是不允许的,所以我们只需要将RRR或者LLL的末尾变成L或R即可,这样可以合理的利用每一次操作,需要注意的是要从每一个连续的R或L开始判断,因为是成环的,所以我们不能直接从头开始,还要注意当三个连续的R或L之后的字母不同时要将第二个R或L改变,因为这种情况改变末原创 2020-08-18 01:20:24 · 175 阅读 · 0 评论 -
Codeforces Global Round 10 B - Omkar and Infinity Clock
题目链接题意:每次都用数组中的最大值减去每一个值,问你k次后的数组。思路:如果最大值固定的话,每两次是一个循环,但是在数组中有负数和没有0的情况下最大值会发生改变,所以我们将数组变为减一次之后的数组,这样数组中一定有0并且没有负数,然后以两次为一个循环判断即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);原创 2020-08-18 00:41:28 · 135 阅读 · 0 评论 -
Codeforces Global Round 10 A. Omkar and Password
题目链接思路:判断是否全部相等,如果全部相等则输出n,否则输出1.代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e6+7;const int M=2e4+5;const double eps=1e-8;const int mod=998244353;const int inf=原创 2020-08-18 00:31:25 · 154 阅读 · 0 评论 -
洛谷-P2669 金币
题目链接思路:一个循环求出金币数即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e6+7;const int M=2e4+5;const double eps=1e-8;const int mod=998244353;const int inf=0x7fffffff;co原创 2020-08-13 01:58:52 · 339 阅读 · 0 评论 -
洛谷-P2181 对角线(思维,数学)
题目链接思路:在经过一些排列组合的技巧,就可以得出代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e6+7;const int M=2e4+5;const double eps=1e-8;const int mod=998244353;const int inf=0x7fffff原创 2020-08-13 01:49:46 · 320 阅读 · 0 评论 -
【杭电多校2020】1009.Increasing and Decreasing
题目链接思路:将整个序列分成x块,每一块找一个元素出来形成的就是最长递增子序列;而递减序列正好是某一整块元素。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e6+7;const int M=2e4+5;const double eps=1e-8;const int mod=998原创 2020-08-13 01:43:31 · 336 阅读 · 0 评论 -
2020牛客暑期多校训练营(第十场)E.Game
题目链接思路:遍历,如果新遍历到的数大于之前的平均数,那么就再次平均,注意平均时向上取整。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+3;const int M=2e4+5;const double eps=1e-8;const int mod=998244353;co原创 2020-08-10 23:40:03 · 240 阅读 · 0 评论 -
2020牛客暑期多校训练营(第十场)A Permutation
题目链接思路:构造,优先乘二,如果能够构造出则输出,不能就输出-1.代码:#include<bits/stdc++.h>//#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e6+7;const int M=2e4+5;const double eps=1e-8;const int mod=998244353;const int i原创 2020-08-10 20:24:17 · 230 阅读 · 0 评论 -
Codeforces Round #663 (Div. 2) C. Cyclic Permutations(组合数学)
题目链接思路:减后再增必成环,列出所有情况,然后再减去只先增一次再减一次的情况和只递增和只递减的情况即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int mod=1e9+7;const int N=1e6+5;using namespace std;int quick(int a,int原创 2020-08-10 01:06:24 · 290 阅读 · 0 评论 -
Codeforces Round #663 (Div. 2) B. Fix You
题目链接思路:将每一行最后一个变成D,最后一行全部变成R即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+3;const int M=2e4+5;const double eps=1e-8;const int mod=998244353;const int inf=0x原创 2020-08-10 00:56:51 · 192 阅读 · 0 评论 -
Codeforces Round #663 (Div. 2) A. Suborrays
题目链接思路:倒序输出n-1即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+3;const int M=2e4+5;const double eps=1e-8;const int mod=998244353;const int inf=0x7fffffff;cons原创 2020-08-10 00:54:06 · 233 阅读 · 0 评论 -
Codeforces Round #662 (Div. 2) D. Rarity and New Dress
题目链接思路:定义f[i][j]为以(i,j)为最下边的菱形的最大边长,那么很明显答案就是∑f[i][j]。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+3;const int M=2e4+5;const double eps=1e-8;const int mod=9982原创 2020-08-09 00:39:52 · 189 阅读 · 1 评论 -
2020牛客暑期多校训练营(第九场)A-Groundhog and 2-Power Representation
题目链接思路:这个题是对字符串的处理,并且会用到高精问题,如果用c++的代码模拟会非常非常非常非常非常麻烦,所以我们要灵活的运用python中的函数,下面请看代码(很离谱)。代码:print(eval(input().replace("(","**(")))...原创 2020-08-08 22:52:49 · 214 阅读 · 1 评论 -
Codeforces Round #662 (Div. 2) B. Applejack and Storages(思维)
题目链接思路:记录个数超过2,4,6,8,的木板的个数,如果他们之间的逻辑满sum4>0&&sum2>2||sum6>0&&sum2>1||sum8>0||sum4>1就输出YES,否则就输出NO。代码:#include<bits/stdc++.h>//#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)原创 2020-08-08 01:27:17 · 268 阅读 · 0 评论 -
Codeforces Round #662 (Div. 2) A - Rainbow Dash, Fluttershy and Chess Coloring
题目链接思路:水题,输出n/2+1即可。代码:#include<bits/stdc++.h>//#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e5+7;const int M=2e4+5;const double eps=1e-8;const int mod=998244353;const int inf=0x7fffffff;原创 2020-08-08 01:24:11 · 931 阅读 · 0 评论 -
Codeforces Round #662 (Div. 2) C. Pinkie Pie Eats Patty-cakes
题目链接题意:给你一个数组,问你怎样摆放该数组中的数可以使得数组中相同数之间的距离的最小值最大。思路:记录出现次数最大的数并记录有多少个,将他们按照一个固定的排列在数组中每隔一个最大的区间出现一次,这样他们每次出现时相同的数之间的距离都是一样且最小值最大的,剩下的数肯定能填充到这些出现次数最大的数所排列过后的数组中且相同数距离一定会满足大于或等于该距离。代码:#include<bits/stdc++.h>//#define int long long#define IOS ios原创 2020-08-08 01:02:07 · 426 阅读 · 1 评论 -
【杭电多校2020】第六场1009.Divisibility
题目链接思路:判断b%x的奇偶性即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e5+7;const int M=2e4+5;const double eps=1e-8;const int mod=1e9+7;const int inf=0x7fffffff;const原创 2020-08-07 01:34:49 · 361 阅读 · 0 评论 -
Codeforces Round #661 (Div. 3) C.Boats CompetitionCompetition
题目链接思路:首先预处理出所有可能的两两相加得到的答案,然后去重处理,标记初始数组中每个元素出现的次数,并标记当前元素存在,然后枚举预处理后的两元素和标记元素是否存在。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e5+7;const int M=2e4+5;const doubl原创 2020-08-07 01:29:37 · 221 阅读 · 0 评论