线段树
wangqianqianya
这个作者很懒,什么都没留下…
展开
-
2019西北工业大学程序设计创新实践基地春季选拔赛题解
A、*Chino with Geometrytheme:给定圆心坐标A与半径,给定两点c(x1,0)在y轴上,B(x2,y2);保证BC与圆A相割,如上图,求BD*BE的值。solution:简单的数学几何推理。(一时推不出可以先考虑特殊情况,如BC过A点,则BD*BE=(AB-r)*(AB+r))过A作BC垂线交于点F,设h=AF,连接AB,AD。#include&...原创 2019-04-08 22:14:56 · 393 阅读 · 0 评论 -
线段树
注意线段树编号从rt从1开始,否则0<<1一直为0!!,区间不一定,可以0开始 左右子树区间分别为[l,mid],[mid+1,r],(因为(l+r)>>1为下取整) Lazy[i]表示节点i的左右子树还未更新,但节点i已更新。区间修改时用。因为已经搜到这里了,所以tree[i]与lazy[i]总是同时更新。注意一旦用了lazy,则就算是单点更新也要push_down...原创 2019-04-25 21:33:54 · 195 阅读 · 0 评论 -
北师大第十届程序设计竞赛
G、慢慢变小的序列不加lazy:#include <set>#include <map>#include <deque>#include <queue>#include <stack>#include <cmath>#include <ctime>#include <bitset>...原创 2019-05-28 13:13:31 · 144 阅读 · 0 评论 -
长春理工大学第十四届程序设计竞赛
M、Orx Zonetheme:A、Rubbishtheme:有10^5*10^5的区域,给定n(<=10^6)个点的坐标表示区域中的这个格子被覆盖。已知相邻(有边或点相连)的两格同属一块垃圾,问共有多少块垃圾。solution:如果区域比较小的话可以用bfs搜索,但这题明显会超时超空间。所以我们不能遍历整个区域,而是应该遍历这n个点。将这n个点按行优先,列次之排序。则...原创 2019-06-10 12:53:46 · 265 阅读 · 0 评论 -
2019 Multi-University Training Contest 3
hdu6611:K Subsequencetheme:给定一个含n个元素的序列,可以选择k轮,每轮选出非降子序列求和,选过的元素不能再选,求k轮后最大能得到的和。solution:最长非降子序列与dp、线段树、网络流联系紧密。每个数字有次数限制,所以考虑费用流。增加一个源点与汇点,再在源点之后与汇点之前增加一个点,分别于源/汇点相连,出/进的流量为k(限制k轮),费用为0。这两点都与每一个...原创 2019-08-01 15:05:29 · 136 阅读 · 0 评论 -
2019吉首大学程序设计竞赛
B、干物妹小埋theme:给定n栋楼的高度及到达该栋楼得到的开心值,开始可以从任一栋楼出发,下一步只会往前到>=它高度的楼,问能获得的最大开心值是多少?(0<n<=200000)solution:就是求最长上升子序列,不过带了权,但数据范围较大,不能用常规DP,考虑用树状数组,每次就是求左边小于 该元素的以此元素结尾的子序列之和的最大值。现将楼高度从小到大排序后去重得到数...原创 2019-07-14 22:42:13 · 336 阅读 · 0 评论 -
2019ICPC南京网络赛
A. The beautiful values of the palacetheme:给定一个n*n螺旋矩阵,现从螺旋矩阵中选出m个位置,每个位置的价值由它的元素值的每个数位之和表示,其余位置的元素全部置为0,q次询问,每次询问子矩阵价值。1<=n<=1e6,m,q<=1e5solution:首先要根据螺旋矩阵的性质推出给定x,y,矩阵中(x,y)的元素值。之后问题转化为...原创 2019-09-03 22:59:23 · 177 阅读 · 0 评论 -
牛客练习赛52
B、Galahadtheme:给定一个长度为n的数组,m次询问,每次询问区间[l,r]的和,要求区间中相同的元素和只能算一次。1<=n,m,a[i]<=5e5solution:涉及到每个数出现的个数看起来是莫队模板题,但这题范围很大,o( sqrt(n))会超时,所以还是得用nlongn的算法,就联想到线段树。我们考虑求一个区间时,若出现重复值时只算最右边的一个,则按从左到右插...原创 2019-09-18 19:23:18 · 317 阅读 · 0 评论