每个题目都有超链接,点击可以跳转到题目界面!!!
中间数
有时加上ios::sync_with_stdio(false);会RE。
锯齿矩阵
不能直接令aaa[x][y]=10,也就是不能将aaa[x][y]直接赋值,但其他方面都可以直接用aaa[x][y]来表示其中的值。
小明堆积木
上网统计
本题加上ios::sync_with_stdio(false);会RE
string定义的字符串可以相互比较
圆桌问题
钻石收集者-vector
这题和vector没什么关系,能用数组的就用数组写;需要动态变化比较多的,方便模拟的就用vector。
桶排序的思想,记录x出现的次数,存放到cnt[x]里,然后求cnt数组的前缀和,遍历一次前缀和数组取[i,i+k]区间的最大值,即答案为:max(sum[i+k]−sum[i−1]),i∈[0,N−k] max(sum[i+k]-sum[i-1]),i∈[0,N-k]max(sum[i+k]−sum[i−1]),i∈[0,N−k]
这题用尺取法也可以,代码就不写了。以下给出前缀和方法的代码:
[L,R]区间的和是sum[R]-sum[L-1],如果L=0,显然会越界,但是又必须从L=0开始取,所以只能写sum[-1]=0;。以上的代码虽然能AC,但是存在隐患,sum[-1]=0;下标越界(在一般情况下,对数组越界访问都是坚决禁止的。但是在某些特定场合,也会有a[-1]这样的访问方式,这和编译器的具体实现有关。)
那就特判i=0的情况,这样写比较保险: