一本满足的线段树专题 | Winterfell30's Blog



一本满足的线段树专题 | Winterfell30's Blog

因为连着两场比赛坑了线段树,所以我打算好好补一下线段树,我线段树的代码风格一直是学习HH神�牡模�感觉很简洁,飘逸。
以下题目有些是HH神�牡淖ㄌ饫锩娴模�有些是我在VJ上找的,自我感觉都是些还不错的题目。
因为以前写专题总是一次做完再写要写很久。。。所以这次边做边更。。。

1.单点更新

线段树的单点更新比较简单,比赛中大都是用来配合其他类型题目来使用的(比如DP)。
所以虽然题目都比较简单,但是熟练使用还是挺重要的。

HDOJ 1166 敌兵布阵

单点增减,区间求和。
AC代码链接

HDOJ 1754 I Hate It

单点修改,区间求最值。
AC代码链接

HDOJ 1394 Minimum Inversion Number

先用线段树求一下逆序数,然后把所有情况递推一下找到最大值就行了。
单点修改,区间求和。
AC代码链接

HDOJ 2795 Billboard

求区间最大值,然后减去L,可以直接在query里面update。
单点修改,区间查询。
AC代码链接

POJ 2352 Stars

以前用树状数组AC过,思路相同,线段树的区间从左到右为1~32000,一个一个插入。
单点修改,区间查询。
AC代码链接

2.区间更新

区间更新使用了懒惰标记,不更新到节点使得效率更高。
关于懒惰标记不再赘述,注意在线段树操作的时候总是要PushDown,只有update的时候才需要PushUp。
在query里面的PushDown是将父节点没有传递下去的部分传下去,这里不是更新,是之前懒惰标记的更正。
PushUp是将子节点传给父节点,子节点的值没有变化,所以不需要PushUp。

HDOJ 1698 Just a Hook

屠夫的钩子是铜的,可以把一段钩子变成金的或者银的,问最后总价值是多少。
区间替换,查询直接输出sum[root]就行了。
AC代码链接

POJ 3468 A Simple Problem with Integers

给出一些数,可以把一个区间里面的数都增加一个数,求给出区间的和。
区间增添,区间查询。
AC代码链接


Read full article from 一本满足的线段树专题 | Winterfell30's Blog


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts