寒假培训——vector

每个题目都有超链接,点击可以跳转到题目界面!!!

中间数

有时加上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的情况,这样写比较保险:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值