摘要:
链接: http://acm.hdu.edu.cn/showproblem.php?pid=6319 思路: 单调队列倒着维护,队列里面剩下的值的数量就是这一段区间的count值,如样例第一个区间:3 2 2 1 5 7 单调队列倒着维护遍历一遍变成了:7 5 3 长度为3,队首为最大值7 实现代码 阅读全文
摘要:
链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1699 思路: 水题,求区间最大最小值,然后减一下,求区间最大最小值线段树,树状数组,分块,莫队都可以,这里直接用分块写了,代码量比较小。 分块写法: 耗时: 阅读全文
摘要:
链接: https://loj.ac/problem/6285 思路: 离散化处理下就好了,具体解释在代码里、 ps: 小新新别看了,你学不会的 实现代码: 阅读全文
摘要:
链接:https://loj.ac/problem/6283 思路: 多重标记下放,之前写过线段树的多重标记,两个思路是一样的,都是优先处理乘法操作,如果当前块出现乘法操作,那么加法标记也要乘上乘法标记,这样运算的时候就可以直接乘上乘法标记加上加法标记 如果当前块出现加法操作,那只对加法标记有影响, 阅读全文
摘要:
链接:https://loj.ac/problem/6282 思路: 用动态的vector去代替数组,这样就可以动态的插入数据了,当一个块的数据插入数据过大时,我们在将整个vector重新分块就好了。 实现代码: 阅读全文
摘要:
链接: https://loj.ac/problem/6281 思路: 因为是向下取整开方,那么其实每个数最多被开个个几次就会变成0或者1了,更新的时候我们可以将中间的块标记下是否全部变成了0或者1,如果全变了就不处理 实现代码: 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4747 思路: 比赛打得太菜了,不想写。。。。线段树莽一下 实现代码: 阅读全文
摘要:
Naive Operations Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 502768/502768 K (Java/Others)Total Submission(s): 0 Accepted Submission(s): 0 Pr 阅读全文
摘要:
Distinct Values Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2298 Accepted Submission(s): 740 阅读全文
摘要:
题目链接: https://www.nowcoder.com/acm/contest/140/J 思路: 都写在代码注释里了,非常好懂。。 for_each函数可以去看一下,遍历起vector数组比较方便,用for(int i = 0;i < q[i].size();i++)的话,是会有一些弊端的, 阅读全文