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