数据结构:未分类
文章平均质量分 93
ProLightsfxjh
这个作者很懒,什么都没留下…
展开
-
2016 UESTC Training for Data Structures I - 郭大侠与线上游戏 2个set
用2个set,Lset维护最小的n/2个数,Rset维护其余的数; 然后用queue来记录这些数的数序; 每次维护都保证Lset里面是最小的n/2个数就好了, 然后查询的时候输出*Rset.begin()就好了。 但是TLE了4发,(┬_┬) 一不小心用了cout …… 其实以前基本上只在调试的时候用cout的-_-||原创 2016-05-01 00:02:41 · 1256 阅读 · 0 评论 -
Codeforces Round #408 (Div. 2) C. Bank Hacking 无根树、贪心、枚举
题意:有一棵无根树,上面每个节点都有一个权值,可以任意选择一个节点删除,但这是和它相邻的节点即隔一个点间接相邻的点 的权值都会增加1,求把所有的点都依次删除,中途会遇到的最大权值点的 最小权值。 无根树、贪心、枚举 其实选定一个根时,根的权值是本身val[i],根的子节点的权值是val[i]+1,其它节点的权值是 val[i]+2, 这个时候只要枚举根和这个根的直接子节点,即可求出答案。 其中取出的这些节点放在priority_queue1里剩余的其它节点放在priority——queue2里,这样就可以快原创 2017-04-13 19:36:27 · 1121 阅读 · 0 评论 -
Codeforces Round #447 (Div. 2) D. Ralph And His Tour in Binary Country 二叉树、预处理、二分、数据结构
题意:给出一颗二叉树,每条边有一个权值,q个询问,每次询问以x为起点,到yi点,求max(H - xyi, 0)求和。 二叉树、预处理、二分、数据结构 先在每个节点维护 该点 到 以其为根的点 的距离,且排序(笔者用的c++的sort所以比归并排序多出一个logn), 并维护n个前缀和。这里时间复杂度 O(nlognlogn) 空间复杂度 O(nlogn)。 然后查询的时候,对于x点进行二分可以找出答案,然后向上回溯,且维护一个变量sumlx为其祖先节点到x的距离。 查找该节点所在的链的隔壁的子树,进行二分原创 2017-12-08 13:34:43 · 580 阅读 · 0 评论 -
Codeforces Round #449 (Div. 2) Codeforces Round #449 (Div. 2) 二叉树、回溯、分类讨论
题意:用一个前缀s1,中间部分s2,后缀s3,fi = s1 + fi-1 + s2 + fi-1 + s3来构造字符串 fi,q个询问(n, k),每次询问第n个字符串的第k个字符。 二叉树、回溯、分类讨论 这样构造出的字符串相当于一颗二叉树,从叶子开始回溯,回溯的时候根据k的情况,判断是从左子树向根回溯,还是从右子树向根回溯。 有点想主席树的一些操作,先预处理出fi的长度,然后每次对于k和当前fi的情况,回溯到i-1, 回溯的时候 如果是左边 k -= 34(前缀),如果是右边 k -= 34(前缀)原创 2017-12-03 15:34:45 · 474 阅读 · 0 评论