摘要:
A link 总共就三组,看一下每一组如果满足要让它是多少,看看最多有几个相同的,最多有几个相同的就满足这些,就可以满足这么多组。 点击查看代码 #include<bits/stdc++.h> using namespace std; int a[10]; int c[5]; void qwq(){ 阅读全文
摘要:
A link 首先,每次操作(第一次除外)之前\(s\)一定是一个奇数,那么我们要再加一个奇数才能让它变为偶数分数加一。 那么就是说操作过至少一次后,有几个奇数就有几分。 那么如果有至少一个偶数,那么第一次用偶数可以得分,后面再用奇数可以得分,偶数的不了分,最终得分就是奇数个数加一,如果没有偶数,第 阅读全文
摘要:
A link 首先,对于一个数(比如说\(x\)),它和它加一一定互质(也就是\(x\)和\(x+1\)一定互质),那么它和它加一组成的区间(\([x,x+1]\))一定是好区间,也一定是最小好区间,因为除了本身\([x,x+1]\)、两个数\([x,x]\),\([x+1,x+1]\)和空集不包含 阅读全文
摘要:
C link 手写队列存下开始位置和长度,模拟即可。 点击查看代码 #include<bits/stdc++.h> #define int long long using namespace std; int q; struct nd{ int st,len; }a[300005]; int h = 阅读全文
摘要:
好像已经很久没有写过题解了 C link 对于每一个糕点,二分查找大于等于它大小的二倍的糕点的位置(可以用\(lower_{}bound\)函数),从这个位置到\(n\)就是可以和这个糕点配对的糕点。 猜猜我是啥 #include<bits/stdc++.h> #define int long lo 阅读全文
摘要:
A link 由于它是由递减变成递增的,所以一定是中间一段连续的相同数不变,前面变,后面变,因为对于一个数来说原来这些数前面的数都大于等于它,而现在都要小于等于它,而原来后面的数都小于等于它,而现在都大于等于它了,那么它左右等于它的就可以不变,而不等于它的就一定要变。 那么一定是找个数最多的数不变, 阅读全文
摘要:
C link 我们找到第\(k-1\)个段的结尾和第\(k\)个段的开头和结尾,当输出到第\(k-1\)个段的结尾时,输出第\(k\)个段,也就是第\(k\)个段的开头到结尾个\(1\),当输出到第\(k\)个段的开头时,直接跳到第\(k\)个段的结尾。 那么怎么找第\(k-1\)个段的结尾和第\( 阅读全文
摘要:
C link 由于只能往后放,显而易见,如果可以达到要求,那么一定只有一种方式。所以重心就在判断是否可行上了。 首先,如果总数量不等于\(n\)肯定不行。 其次,如果第一堆不在\(1\)肯定不行。 最后,如果到了某个点的时候石头总和不够\(1\)到这个点的数量一定是不行的。 那么在统计答案的时候,我 阅读全文