这个题目给定N航班的发出时间和结束时间以及价值,要求不冲突时间的最大价值第一时间想到经典的N方DP,即对航班按发出时间排一下序之后每个i对前面的都扫一遍时间过不了N有10万,只能想优化了,一开始想了个用树状数组记录每次加入某个航班之后 后面的所有在结束时间后的区间全部可以加一个最大值,但是首先时间区...
分类:
其他好文 时间:
2014-07-29 11:48:16
阅读次数:
188
Color the ballTime Limit: 9000/3000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8984Accepted Submission(s): 4594Prob...
分类:
其他好文 时间:
2014-07-29 10:50:26
阅读次数:
269
Mobile phonesTime Limit:5000MSMemory Limit:65536KTotal Submissions:14489Accepted:6735DescriptionSuppose that the fourth generation mobile phone base s...
分类:
其他好文 时间:
2014-07-28 14:41:37
阅读次数:
265
题目来源:http://acm.uestc.edu.cn/#/problem/show/4分析:就是一个很普通的区间修改,单点查询的树状数组,但是今天忘记吃药了,一直写不对,中午迷迷糊糊地,直接把数据读入到数组里而不是update,然后又总是考虑后面的数被减到0以下要怎么处理,其实根本不用考虑,直接...
分类:
其他好文 时间:
2014-07-27 23:27:59
阅读次数:
251
这个系列总共有7道题,目前只做了3道,gss2比较难,gss4是暴力修改,树状数组维护,还没写,gss6和gss7还不在能力范围内。SPOJ_1043GSS1题意:给定长度不超过5万的序列,M次查询(貌似没给大小?。。),查询所给区间内的最大子段和。做法:线段树。维护区间和sum,区间可以得到的最大...
分类:
其他好文 时间:
2014-07-27 23:19:59
阅读次数:
456
绝对大坑。千万记住树状数组0好下标位置是虚拟节点。详见大白书P195。其实肉眼看也能得出,在add(有的也叫update)的点修改操作中如果传入0就会死循环。最后TLE。所以下标+1解决问题。上代码! 1 #include 2 #include 3 #include 4 #include 5...
分类:
其他好文 时间:
2014-07-27 21:58:39
阅读次数:
288
题目连接:http://acm.uestc.edu.cn/#/problem/show/931OJ评判系统有些坑,不支持__int64以及输出的%I64d大家注意。全开long long也会TLE,比较坑。逆序的基础操作题,不错。 1 #include 2 #define MAX 100010 3....
分类:
其他好文 时间:
2014-07-27 21:36:45
阅读次数:
207
是一道树状数组的裸题,也可以说是线段树的对于单点维护的裸题。多做这种题目可以提高自己对基础知识的理解程度,很经典。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #inclu...
分类:
其他好文 时间:
2014-07-27 21:28:35
阅读次数:
234
一个N*N(1
C x1,y1,x2,y2 表示从x1行y1列到x2行y2列的元素全部反转(0变成1,1变成0);
Q x y表示询问x行y列的元素是0还是1。
题目乍一看感觉还是很难,如果能记录每一个元素的状态值,那答案是显而易见的,但是元素过多,如果每次都对每一个元素进行更新状态的话,复杂度太高。实际上只要记录边界的特定坐标的反转次数,最好的选择那就是二维树状数组了。
...
分类:
其他好文 时间:
2014-07-27 11:17:02
阅读次数:
215
树状数组必要的图解
这个图表示了对数组的变化,使得 c[1] = a[1] , c[2] = a[1] + a[2] , c[3] = a[3] , c[4] = a[1] + a[2] + a[3] + a[4] 。。。每一个c[i]的值代表了对应的i可以控制的区间,那么如果改变一个值后,只需要改变c数组中控制这个区间的c[i]就可以了
1.树状数组,两个最基本的操作,修改和查询
...
分类:
其他好文 时间:
2014-07-26 15:08:50
阅读次数:
271