
思维
狐佑 怜
都写都写(指题解)
展开
-
NC50439 tokitsukaze and Soldier
NC50439思路:一道思维题,其实还是比较好想的,跟CF上某次的C题比较类似,先排个序,再用优先队列暴力一下,一次for循环就能完事儿代码附:#pragma GCC optimize("Ofast","inline","-ffast-math")#pragma GCC target("avx,sse2,sse3,sse4,mmx")#include<bits/stdc++.h>#define int long long#define pb push_back#define p原创 2020-07-17 09:17:46 · 176 阅读 · 0 评论 -
1368C - Even Picture(1500)
1368C - Even Picture题意:在一个全是网格的图中,你可以选择一些格子涂灰,请你涂一些格子并且满足以下条件:所有格子必须是连通的对于每一个格子,都有偶数个格子与它相邻有恰好N个格子,它们的上下左右都有格子相邻思路:个人觉得下面这种图形是最完美的每个格子都是偶数个相邻,只要将这种图形的边角不断的重叠就能构造出我们需要的上下左右都相邻的格子一个又一个所以我们需要初始方块4个,和剩下N*3个格子用来构造每一个四边相邻的格子代码附:#pragma GCC optimi原创 2020-07-10 20:39:55 · 202 阅读 · 0 评论 -
1368D - AND, OR and square sum
1368D - AND, OR and square sum题意:给你N个数,你可以选择任意两个数 i,j ,使得原本a[i]=x,a[j]=y变为a[i]=x&y,a[j]=x|y;,可以做这种操作无数次,请使得这N个数的平方和最大思路:题上已经说得很清楚了,用二进制做,直接把每一个数的二进制位都扣下来,然后每次都去取这些二进制位来组成当前能组成的最大数来算平方和代码附:#pragma GCC optimize("Ofast","inline","-ffast-math")#prag原创 2020-07-10 15:48:02 · 180 阅读 · 0 评论 -
1367B - Even Array (800)
1367B - Even Array题意:通过交换数组中的任意位置的元素,能够使得数组的下标的奇偶校验与元素相同的最小操作次数是?思路:判断错误的奇数与偶数个数是否相同,相同直接输出,否则输出‘-1’代码附:#pragma GCC optimize("Ofast","inline","-ffast-math")#pragma GCC target("avx,sse2,sse3,sse4,mmx")#include<bits/stdc++.h>#define int long l原创 2020-07-10 15:03:51 · 232 阅读 · 0 评论 -
Codeforces Round #650 (Div. 3) A. Short Substrings (800)
A. Short Substrings题意:给你字符串B,请你猜出字符串A,字符串B=a[0]+a[1]+a[1]+a[2]+a[2]+a[3]+a[3]……+a[n],其中a[0]和a[n]只出现一次思路:先输出a[0],剩下的只输出下标为奇数的代码附:#pragma GCC optimize("Ofast","inline","-ffast-math")#pragma GCC target("avx,sse2,sse3,sse4,mmx")#include<bits/stdc++.原创 2020-07-10 13:13:02 · 199 阅读 · 1 评论 -
1369A - FashionabLee (800)
1369A - FashionabLee题意:给你一个N边形,判断他是否存在一条边平行X轴,一条边平行Y轴思路:直接判断N是不是4的倍数,这样上下左右的边才都是平行的代码附:#pragma GCC optimize("Ofast","inline","-ffast-math")#pragma GCC target("avx,sse2,sse3,sse4,mmx")#include<bits/stdc++.h>#define int long longusing namespa原创 2020-07-10 11:21:04 · 328 阅读 · 0 评论 -
Codeforces Round #652 (Div. 2) D. TediousLee (1900)
D. TediousLee题目大意:在树第N次成长后,最多能选出多少颗爪型树,求出这个值*4(点的数量)思路:经过几次推导,能够发现,会新长出来的点的数量a[i]=a[i-1]+2*a[i-2],因为爪型树的根节点来自a[i-2],左右两边的点来自a[i],下面的点来自a[i-1],能够看出,每当选出一层的根节点为a[i]爪型树,就不能再选根节点层数为a[i-1]和a[i-2]的爪型树,所以能推出递推式ans[i]=ans[i-1]+2*ans[i-2]+(i%3==0);该递推式的意思值的是从最原创 2020-07-10 09:52:43 · 150 阅读 · 0 评论 -
Codeforces Round #651 (Div. 2) A. Maximum GCD (800)
A. Maximum GCD题意:找到[1,n]中GCD最大的一对数的GCD思路:暴力秒A,直接输出N/2代码附:#pragma GCC optimize("Ofast","inline","-ffast-math")#pragma GCC target("avx,sse2,sse3,sse4,mmx")#include<bits/stdc++.h>#define int long longusing namespace std;const int N = 2e5+10;原创 2020-07-10 06:09:26 · 106 阅读 · 0 评论 -
1370B - GCD Compression (1100)
1370B - GCD Compression题意:给一个大小为2N的数组A,请你从该数组从丢弃任意两个数,并将剩下(2N-2)个数两两相加,组成一个新的数组B,该数组B的所有元素的GCD>1思路:直接判断奇数奇偶性即可,丢弃两个数后使得奇数的个数为偶数,这样,奇数两两相加,偶数两两相加,GCD==2代码附:#pragma GCC optimize("Ofast","inline","-ffast-math")#pragma GCC target("avx,sse2,sse3,sse4,m原创 2020-07-10 06:03:23 · 208 阅读 · 0 评论 -
1370C Number Game (1400)
1370C题意:A和F博弈,给一个数字N,可以做一下两种操作:if(N>1)N--;if(x%2==1 && N%x==0 && N>1 && x>1)N/=x;不能进行操作的人会输,A先手思路:可以看出来,如果N>1&&(N&1)或者N==2,A能赢;如果N是偶数,但是N除以它的最大的奇数(大于1)的值大于2的话,A能赢;其他情况F会赢代码附:#pragma GCC optimize("O原创 2020-07-09 20:45:40 · 126 阅读 · 0 评论 -
1370D - Odd-Even Subsequence(2000)
1370D - Odd-Even Subsequence题意:可以在长度为N的数组中任选K个元素组成一个新的数组,设这个新的数组中下标为奇数的元素中的最大值为K1,下标为偶数的元素中的最大值为K2,求MIN(K1,K2)思路:已知 1≤ai≤1e9,使用二分来寻找一个值X,这个X能够使得在选择了长度>=K的新数组后,在这个新数组中的下标为奇数(或者偶数)的所有元素的最大值<=X代码附:#pragma GCC optimize("Ofast","inline","-ffast-math原创 2020-07-09 20:01:37 · 149 阅读 · 0 评论 -
1370E Binary Subsequence Rotation (2100)
1370E题意:两个01串,s和t,你能将s的子串顺时针位移一下,请问最少要多少次操作能使得s==t思路:这就是一个思维题,想通了就很简单。不要管位置正确的那些字符,只把位置错误的单独拿出来看,就能发现如果是01010101……这种或者101010……这种就只用一次操作就能把位置修正,所以我们只需要找这样的串一共有多少个就行了代码附:#pragma GCC optimize("Ofast","inline","-ffast-math")#pragma GCC target("avx,sse2,原创 2020-07-09 12:13:50 · 158 阅读 · 0 评论 -
Codeforces Global Round 9 D. Replace by MEX (1900)
D. Replace by MEX题意:存在一个数组A,令该数组中不存在的最小非负数为MEX,每次操作可以让任意a[i]=mex,请在2N的操作次数以内使得数组A非递减思路:让a[i]=i,每次操作完边界a[i]都让边界缩小,如果mex==n就放在a[n-1]代码附:#pragma GCC optimize("Ofast","inline","-ffast-math")#pragma GCC target("avx,sse2,sse3,sse4,mmx")#include<bits/s原创 2020-07-09 09:33:02 · 145 阅读 · 0 评论 -
Codeforces Global Round 9 C. Element Extermination (1400)
C. Element Extermination题意:如果a[i]<a[i+1],那么可以消除掉a[i]或a[i+1]中的任意一个,给你一个数组,问其最后能不能被消除到只剩一个元素思路:如果a[0]<a[n-1],那该数组一定能被消除到只剩一个,这是为什么呢?因为大于a[0]的能被a[0]消除,小于a[n-1]能被a[n-1]消除,而且因为只有当a[i]<a[i+1]时,才能消除掉a[i]或a[i+1]中的任意一个,也就是说,左边界不可能比a[0]更小了,右边界也不能比a[n-1]原创 2020-07-09 09:26:36 · 228 阅读 · 0 评论