线段树
soloier
这个作者很懒,什么都没留下…
展开
-
线段树
曲神blog http://www.yhzq-blog.cc/%e7%ba%bf%e6%ae%b5%e6%a0%91%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0/ 单点修改 求区间和的code#include<cstdio> using namespace std; int L,R,X; long long K; struct tree { int lb,rb原创 2016-10-19 18:58:44 · 208 阅读 · 0 评论 -
线段树 约瑟夫问题 codevs 1282
int seq = 1; for(int i = 0 ; i < n ; i++) { seq = (seq + m - 1) % sum[1];//seq 只是相对位置 if(seq == 0) seq = sum[1]; cout<<"seq = "<<seq<<"; ";原创 2016-10-20 20:29:24 · 310 阅读 · 0 评论 -
[JSOI2008]最大数
1.给一个比较简单的做法,由于先入队的较小数,在有后入队的大数的情况下不可能为答案,所以,可以维护一个单调队列。由于单调队列中入队先后,与数的大小皆是有序的,故可以用二分查找找到单调队列中,在后l个数里,最靠近队首(最大)的数,即为答案。ps:(1)线段树常数大故此做法要快得多 (2)c++中可用函数lower_bound实现二分查找功能。#include<iostream> #include<al原创 2016-12-24 17:49:59 · 926 阅读 · 0 评论