线段树、树状数组
Cc_Sonia
这个作者很懒,什么都没留下…
展开
-
HDU6447 YJJ's Salesman 2018CCPC网络赛 树状数组+离散化
比赛的时候,一开始写了个二维最朴素的dp,果断TLE。。然后就不知道怎么优化了。。。比完赛听某大佬学长说,先离散化,再树状数组维护一下y坐标,降维成一维的dp。之前一直没学过离散化和树状数组,现在看来得学了QAQ...附上讲解博客Orz:离散化:https://blog.csdn.net/xiangaccepted/article/details/73276826 树状数组:https...原创 2018-08-28 16:10:06 · 406 阅读 · 0 评论 -
POJ2528 Mayor's posters 线段树+离散化
果然我不会的题都是大佬眼里的水题。。我好菜啊啊啊55555...先附上大佬博客Orz:https://blog.csdn.net/zezzezzez/article/details/80230026 https://blog.csdn.net/u014779110/article/details/48784581离散化...原创 2018-09-08 22:53:53 · 167 阅读 · 0 评论 -
2018ICPC徐州站网络赛 Ryuji doesn't want to study 思维+前缀和+树状数组
做这道题让我对线段树和树状数组有了更深的理解。。主要是维护两个前缀和,一个a[i],一个(n-i+1)*a[i],最后结果减一下。剩下就是注意一些树状数组的操作更改了。附上通过代码:#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include...原创 2018-09-09 19:52:06 · 762 阅读 · 0 评论 -
线段树模板
主要参考博客Orz:http://www.cnblogs.com/TheRoadToTheGold/p/6254255.html通过刷HDU1166和POJ3468,弄出来一份比较合适的模板,记录下来2333#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>...原创 2018-09-06 21:10:40 · 174 阅读 · 0 评论 -
HDU4027 Can you answer these queries? 线段树
这道题最坑的一点就是a,b大小关系不确定。。。另外如果区间内的所有数都是1就不必更新了,不然挨个更新叶子节点会TLE。。改线段树的时候不是很敢改,但是看过标程发现还是要胆大一些。主要是区间更新,以前是一段更新,现在是以点更新;另外不需要用懒标记。不多说了,直接上AC代码:#include<cstdio>#include<cstring>#include<...原创 2018-09-10 22:43:14 · 184 阅读 · 1 评论 -
HDU5157 Harry and magic string manacher+差分前缀和/树状数组
这道题思路并不难想(假的!):先用manacher算法求出以s[i]为中心的最长回文子串左右扩展的长度,再分别推出以s[i]结尾和开头的回文子串(注:不一定是最长的。如原串为aacaa,则i=3时,en[i]=2而不是1)数量,然后其中一组乘上另外一组的后缀和(前缀和)相加即可。简单分析一下第一个样例: 原数组的下标 i: 0 1 2 ...原创 2018-10-28 09:26:12 · 306 阅读 · 0 评论 -
POJ 2352 Stars 树状数组
好久没做这类题了。。果然我还是太菜了。。完全想不到用树状数组。。知道了也不会建树。。。看了网上大佬们的博客,才发现可以按y排序后按x建立一维树状数组,树的节点标号是x坐标值,节点对应的值都是1。这样就成了最原始的树状数组,求一个小于x坐标值的区间和。另外有些细节要注意,附上AC代码如下:#include<cstdio>#include<algorithm>#i...原创 2019-03-23 10:55:28 · 249 阅读 · 0 评论 -
POJ1195 Mobile phones 二维树状数组
又是长期没刷题的咸鱼,,今天做了道树状数组的题。这道题一开始我没想用二维的,想着用一维的树状数组,把二维下标重新排列成一维的,比如(x*n+y+1)。但后来发现这样不行,会多算:比如4×4的矩阵,下标0≤x≤3,0≤y≤3,对应一维下标从1对应到16 1 2 3 4 5 6 7 8 9 10 11...原创 2019-09-01 10:51:35 · 231 阅读 · 0 评论