![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
qq_45768257
这个作者很懒,什么都没留下…
展开
-
c++优先队列一些知识。
/*1.优先队列一般写法:priority_queue<int,queue<int>,greater<int> > q;2.对于pair,先比较第一个数,第一个数相等再比较第二个数3.greater<>为小顶堆,less<>为大顶堆,(sort中greater从大到小排序,less相反。)4.对于自定义的结构体实现优先队列:5.sort(,,greater<int>()) priority_queue< , ,greate原创 2020-12-15 20:45:29 · 148 阅读 · 0 评论 -
2020-12-06
最大子段和:给出一个长度为 nnn 的序列 aaa,选出其中连续且非空的一段使得这段和最大。不连续好办:直接模拟即可: if(k==1){ temp = now; ans = max(ans,temp); } else{ if(now>=0&&temp<0) //这个会导致不连续字段和 ,我们要求连续的 连需要用最大子段和思想,即前面累加大于0 temp = now; //加上 否则 舍去。 else if(原创 2020-12-06 10:17:57 · 89 阅读 · 0 评论 -
树状数组的区间修改和单点查询。
树状数组的区间修改和单点查询。修改数组的含义:c[i]表示的是这段区间每个数当前被加了多少。修改完了之后单点查询代码://getSum(int x)返回第x个整数的值//该方法类似于之前的单点修改int getSum(int x){ int sum = 0; for(int i=x;i<maxn;i += lowbit(i)){ sum += c[i]; } return sum;}//update(int x,int v) 函数将前x个整数都加上vvoid update(原创 2020-12-04 21:09:38 · 59 阅读 · 0 评论