题目链接:poj--3237
题意很简单,给出n个节点的一棵树,有三种操作:
1、C修改第i条边的值为v
2、N改变节点a到b内边的权值的符号(取反)
3、Q询问节点a到b内权值的最大值
首先树链剖分,将边整合到线段树上,线段树数组cl,因为存在取反操作,所以最大值可能是由最小值取反得到,所以记录最大和最小值,cl[i][0]记录第i段的最大值,cl[i][1]记录最小值,lazy做标记...
                            
                            
                                分类:
其他好文   时间:
2015-04-19 16:17:18   
                                阅读次数:
141
                             
                         
                    
                        
                            
                            
                                题目描述
某涉密单位下发了某种票据,并要在年终全部收回。
每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。
因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。
你的任务是通过编程,找出断号的ID和重号的ID。
假设断号不可能发生在最大和最小号。
输入格式
每行数据长度不等,是用空格...
                            
                            
                                分类:
编程语言   时间:
2015-04-19 11:41:02   
                                阅读次数:
234
                             
                         
                    
                        
                            
                            
                                编程珠玑 第 8 章编程珠玑 第 8 章Table of ContentsO(n3)O(n2)O(n2) 记忆O(nlogn)O(n)求一个整型数组中相邻子向量的最大和31-415926-53589793-2384O(n3)int maxsofar = 0;for (int i = 0; i r) ...
                            
                            
                                分类:
其他好文   时间:
2015-04-19 06:22:17   
                                阅读次数:
150
                             
                         
                    
                        
                            
                            
                                导语:今天看IOI2004的论文集,学到了一种集合函数,顺便把它记录下来
例题:支付帐单:
题目描述
比尔最近遇到了一件麻烦事。每天上午,他会收到若干张帐单(也可能一张也没收到),每一张都有一定的面额。下午,他会从目前还没有支付的帐单中选出面额最大和最小的两张,并把它们付清。还没有支付的帐单会被保留到下一天。现在比尔已经知道他每天收到帐单的数量和面额,请你帮他给出支付的顺序。
约束条件...
                            
                            
                                分类:
其他好文   时间:
2015-04-18 16:11:29   
                                阅读次数:
135
                             
                         
                    
                        
                            
                            
                                利用分治法解决最大子数组问题(对给定的数组得到该数组中具有最大和的子数组)/*
 * 对于给定的整数数组A,求出数组中具有最大和的子数组,最大和以及左右下标
 * 思路:采用分治的方法,将数组分为两部分,则有最大和的子数组共有三种情况
 * 在数组左边,在数组右边,跨越数组中点
 */#include 
using namespace std;//存放左右边界值以及sum值的结构...
                            
                            
                                分类:
编程语言   时间:
2015-04-16 09:08:35   
                                阅读次数:
153
                             
                         
                    
                        
                            
                            
                                1.结组成员 周盼超、张晨建2.实现功能 随机产生一个二维整形数组,数组里有正数也有负数。 二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。3.设计思路 我感觉,这应该是最笨的方法了吧,我们用了用了四个for嵌套。思路很简单:每一行每一行的求...
                            
                            
                                分类:
编程语言   时间:
2015-04-15 19:13:00   
                                阅读次数:
125
                             
                         
                    
                        
                            
                            
                                楼主这篇文章的目的是要带大家梳理一下,有关于求子数组问题。如求子数组的最大和,求最大和的子数组,求最大积的子数组等一系列问题。今天阳光明媚,楼主今天心情很好哦,愿大家开心每一天,哈哈。Are you ready?开始了哦~~~题目一:求子数组的最大和题目求子数组的最大和,这里需要注意的一个问题就是,子数组那么便意味着是连续的一段数据。我们可以先写的例子,方便我们注意到要考虑的一些问题。数组:[1,...
                            
                            
                                分类:
编程语言   时间:
2015-04-10 22:37:03   
                                阅读次数:
215
                             
                         
                    
                        
                            
                            
                                摆方格
时间限制:1000 ms  |  内存限制:65535 KB
难度:2
描述
  给你一个n*n的方格,每个方格里的数必须连续摆放如  
1
2
4
3
 
,下图为不连续的,请输出从左上角到右下角的对角线上的最大和   
1
3
4
2
...
                            
                            
                                分类:
其他好文   时间:
2015-04-09 23:50:26   
                                阅读次数:
319
                             
                         
                    
                        
                            
                            
                                设计思想:首先肯定是把二维转化为一维数组来比较,这样,先从第一行开始,把第一行看成是一维数组选出最大子数组具体实现是,设子数组和为sum=0,另设b=0,a[0][i]从a[0][0]开始检索当bsum时sum=b,(首先保证sum的初次赋值是大于0然后就是对b的操作首次出现正数时赋给b此时sum....
                            
                            
                                分类:
编程语言   时间:
2015-04-09 23:35:47   
                                阅读次数:
261
                             
                         
                    
                        
                            
                            
                                1、设计思路因为计算了一位的最大和子数组,所以想办法将二维的数组转换成一维子数组进行求解;首先,将二维数组的第一行(列)赋值到新的一维数组中,在一维的数组中求得子数组的最大值,然后,将二维数组的第二行(列)加到一维数组中,再次求得子数组的最大值,并和第一步求得的最大值进行比较,若新的值比较大,留下最...
                            
                            
                                分类:
编程语言   时间:
2015-04-09 19:19:36   
                                阅读次数:
160