题意  对一个数组有四种操作
1: 将区间[ l, r] 中的所有值都加上c
2:将区间 [l, r] 中所有比c大的值改为c
3:将区间 [l, r] 中所有比c小的值改为c
4:输出区间 [l, r] 中所有数的最小值和最大值
对每个操作4输出对应最小值和最大值基础的线段树  在湘潭卡了好久没写出来 
线段树维护三个值 区间最大值 maxv, 区间最小值minv, 区间增加的值add 
操作1是...
                            
                            
                                分类:
其他好文   时间:
2015-07-05 11:04:27   
                                阅读次数:
123
                             
                    
                        
                            
                            
                                http://www.zhihu.com/question/27292971【朝阳业务:有思想、有闯劲,跳槽后升值高】蚂蚁金服无线事业部阿里云菜鸟网络(物流)B2B国际CDO(数据平台) 【稳定和谐:有思想,求安稳,反正去哪都饿不死】天猫、淘宝和B2B 【新兴科技的话】iDST 25个事业部具体分....
                            
                            
                                分类:
其他好文   时间:
2015-07-03 23:19:51   
                                阅读次数:
3607
                             
                    
                        
                            
                            
                                该题是所谓“最大值尽量小”的典型代表,方法就是用二分猜这个最值,判断函数就是从前向后扫,尽量向后划,如果最后划出的组数比k小,那么显然可以划成k组。
代码如下:
#include
using namespace std;
typedef long long ll;
int T,n,k,a[505];
bool P(int m) {
    int ans=0,cnt=1;
    for(in...
                            
                            
                                分类:
其他好文   时间:
2015-07-03 19:14:32   
                                阅读次数:
83
                             
                    
                        
                            
                            
                                题目链接:点击进入 
以前也碰到过不需要修改,只需要单纯查询区间最值的题目,那时候都是用的线段树做的。但是现在大白书上提供了一个更好的算法。 
当然这个题目本身还是不能直接套最大最小值的模板的,需要做一些转换。其中最主要的就是要将题目给的数据,处理成(a,b)这种格式,表示数字a连续出现b次,并且记录每个编号对应的段号。然后我们在处理过后的以段为表示单位的数据上进行RMQ查询了。代码如下:#incl...
                            
                            
                                分类:
其他好文   时间:
2015-07-02 22:41:06   
                                阅读次数:
187
                             
                    
                        
                            
                            
                                1. 问题描述  找出数组中第k大的数,注意:数组为无序数组。 
  2. 方法与思路  是一道经典算法题。解法也有好几种,一种是先进行排序,然后取出第k大的数;由于排序算法最快效率为O(nlogn)O(nlogn),所以整体效率为O(nlogn)O(nlogn)。二是使用优先队列,SLT中有优先队列的用法,内部是以堆的方式实现。时间效率也比较高,O(nlogn)O(nlogn)。 
  class...
                            
                            
                                分类:
其他好文   时间:
2015-06-29 10:19:30   
                                阅读次数:
97
                             
                    
                        
                            
                            
                                题目: 
输入一串字符,只包含“0-10”和“,”找出其中最小的数字和最大的数字(可能不止一个),输出最后剩余数字个数。c#include
#include
#includevoid main()
{
    char str[100];
    printf("输入一组字符串:\n");
    scanf("%s",&str);    s...
                            
                            
                                分类:
其他好文   时间:
2015-06-27 09:53:34   
                                阅读次数:
111
                             
                    
                        
                            
                            
                                题意:有个公告板,大小为h*w,要贴n张公告,每个公告的长度是x,高度固定为1,公告放的要尽可能靠上并尽可能靠左,每给出一张公告,要求这个公告在满足要求的情况下放在了第几层。Sample Input3 5 524333 Sample Output1213-1 1 # include 2 # inc....
                            
                            
                                分类:
其他好文   时间:
2015-06-26 22:20:24   
                                阅读次数:
196
                             
                    
                        
                            
                            
                                Sub Main() Dim a As Integer() = {1, 2, 3, 4, 5, 6, 7} Dim b As Integer() = {4, 5, 6, 7, 8, 9, 10} Dim c As Integer() = {1, 2, 3, ...
                            
                            
                                分类:
编程语言   时间:
2015-06-25 01:18:31   
                                阅读次数:
183
                             
                    
                        
                            
                            
                                e,应该是线段树里的水题。线段树单点更新。查询区间最值。代码套用模板 PS :模板有些地方不太懂。#include#include#include#define maxn 200010using namespace std;int val[maxn];struct Node{ int max; //...
                            
                            
                                分类:
其他好文   时间:
2015-06-23 21:24:18   
                                阅读次数:
159