题意:给你一组人\(a\),现在要将这些人进行分组,对于\(i\),只有某一组的人数\(\ge a_{i}\)时,\(i\)才可以加入这个组,问最多能够有多少组,(不必将所有人都选用). 题解:我们将所有\(a_{i}\)相同的用一个桶存一下,然后升序遍历这个桶,假如桶里面的人数\(\ge a_{i}\),那么它们就能够组成一组,之后我们再取余,将剩下的人记录下来,继续遍历后面的桶,如果这些剩余的人数\(\ge a_{i}\),那么它们也可以组成一组,继续遍历下去就行了. 代码: #includ…
https://codeforces.com/contest/1065 题意 给你a,b,让你找尽量多的自然数,使得他们的和<=a,<=b,用在a和b的自然数不能重复 思路 假如只有一个数a让你去找,问题就很简单了,就是找到一个x,使得x尽量大,且x*(x+1)/2<=a,意味着答案就是1~x 我的思路是从1开始累加,加到一个不能再加的数时,向后退一个数,加上n-sum(1~a[i-1])(ps:a[i+1]为不能再加的数) 错误贪心思想:假如加到不能再加,同样是只能再加一个数了,不如把…
题意:有一个长度为\(n\)并且所有元素和为\(0\)的序列,你可以使\(a_{i}-1\)并且\(a_{j}+1\),如果\(i<j\),那么这步操作就是免费的,否则需要花费一次操作,问最少操作多少次使得所有元素为\(0\). 题解:首先优先考虑不用花费的情况,如果\(a_{i}>0\),\(a_{j}<0\),且\(i<j\),那么我们可以免费的使这两个或一个元素变为\(0\),这里我们可以倒着遍历,记录负数的和,如果遇到正数就抵消,如果不足以抵消正数,那么该位置剩余的正数值就…
Codeforces Round #297 (Div. 2)C. Ilya and Sticks Time Limit: 2 Sec  Memory Limit: 256 MBSubmit: xxx  Solved: 2xx 题目连接 http://codeforces.com/contest/525/problem/C Description In the evening, after the contest Ilya was bored, and he really felt like ma…
目录 A. Sequence with Digits B. Young Explorers C. Count Triangles D. Game With Array E. Restorer Distance https://codeforces.com/contest/1355 打一半和室友开黑去了哈哈哈哈哈哈反正不计分(不要学我) A. Sequence with Digits 这题我会证!首先对于百位来说,不可能从x跳到x+2,只能从x变成x+1或者不变(因为最大变化量为 \(9\time…
前言:这套cf我感觉出的很不错,AB就不说了,唯一有点欠缺的就是C和D的位置应该换一下,C出的挺不错,反正我当时没有想出来(赛后补题的时候其实也不难..听朋友说还可以FFT优化,然而我是个图论手并不会数论).D就是个一眼构造题,也没什么意思.E也是个不错的三分题,至少加强了我对三分的认知.F过的人太少,不补了叭 A:Sequence with Digits 签到题不详细讲了,直接上代码吧... #include <iostream> #include <algorithm> usi…
C. Count Triangles 题目链接 : https://codeforces.com/contest/1355/problem/C 题目大意 : 给你 A , B , C , D 问有多少种方法构造出三角形(X , Y , Z)使得 A ≤ X ≤ B ≤ Y ≤ C ≤ Z ≤ D 解题思路 : 假设我们有了 (X + Y) 的长度时(记 X + Y = i ) 根据三角形两边之和大于第三边的性质 Z 的取值范围我们也能确定了 再根据题意 B <= Y <= C , 我们又能得到…
题意:给你\(n\)个数,每次可以使某个数++,--,或使某个数--另一个++,分别消耗\(a,r,m\).求使所有数相同最少的消耗. 题解:因为答案不是单调的,所以不能二分,但不难发现,答案只有一个峰,所以我们可以三分高度,然后写个check函数贪心一下即可. 代码: #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorith…
题意:给你四个正整数\(A,B,C,D\),且\(A\le B\le C \le D\),有\(A\le x\le B\le y\le C \le z\le D\),求最多有多少组\((x,y,z)\)能构成三角形. 题解:这题数据范围最大是\(5*10^5\),所以我们肯定不能枚举\(x,y\),但是由于题目限定我们知道: x+z>y |||||| y+z>x ​ 所以以上两种情况恒成立,我们只要看\(x+y>z\)的情况,我们可以枚举\(x+y\). 设\(x+y=m\),先求出\(…
题意:给你两个正整数\(N\)和\(S\),构造一个长度为\(N\)并且所有元素和为\(S\)的正整数数组,问是否能找到一个\(K (0\le K \le S)\)使得这个数组的任意_子数组_的和都不等于\(K\)或\(S-K\),如果存在则输出YES,并且输出这个数组和\(K\),不存在则输出\(NO\). 题解:这类题写多了其实就会发现基本上都是一连串1或2加上一个数来构造,这题也是如此. 我们可以将这个数组构造为\(N-1\)个\(1\)和一个\(S-N+1\),很明显,只要\((N-1,…