摘要: 这篇lazy讲的很棒: https://www.douban.com/note/273509745/ if(tree[rt].l == l && r == tree[rt].r) 这里就是用到Lazy思想的关键时刻 正如上面说提到的,这里首先更新该节点的sum[rt]值, 然后更新... 阅读全文
posted @ 2016-09-15 20:28 see_you_later 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你两行数字,n个m个,然后给你k条线直接把两个数连起来,问有多少个交叉的 思路: 假定上一行是起点,下一行是终点。 把路按照起点从大到下排序, 然后可以直接对每条路查询,这条路目前的交叉数,等于sum[终点-1]条路相连, 因为是起点是从大到小,终点是取一个前面点的路,所... 阅读全文
posted @ 2016-09-15 20:25 see_you_later 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 题意: 计算一个序列里有多少个上升子序列 思路: 先离散化一下,按照值排序,如果相同的就按照坐标从大到小排序,这样就可以避免重复计算。 树状数组存的是以a[i]结尾的子序列之和; dp[a[i]]=sigma(a[i]-1)+1; OK,还是很简单的;#include using ... 阅读全文
posted @ 2016-09-15 20:23 see_you_later 阅读(121) 评论(0) 推荐(0) 编辑