- 2025-01-22实数域上的DP?——[AGC020F] Arcs on a Circle
#实数域上的DP?——[AGC020F]ArcsonaCircle有点没搞懂。---注意到线段长度为整数,即li和ri的小数部分一定相同而判断两个线段是否相交只会用到l和r的相对大小关系,所以可以对小数部分离散化然后就可以dp了。先断环为链,$n!$暴力枚举小数部分相对大小,离散化以后一共
- 2025-01-22题解:洛谷 P1803 凌乱的yyy / 线段覆盖
题目https://www.luogu.com.cn/problem/P1803题目大意给定 条线段,第 条线段放在位置 ,现在你需要从这些线段中拿出一些,使得剩下的线段不会重叠。思路考虑贪心。可以发现,按照左端点从小到大排序毫无意义(虽然样例能过)。因此考虑按右端点从小到大排序。然后尽量多放
- 2025-01-21线段树
线段树是算法竞赛中常用的用来维护区间信息的数据结构。线段树可以在O(logN)的时间复杂度内实现单点修改、区间修改、区间查询(区间求和,求区间最大值,求区间最小值)等操作。建树voidbuild(intk,intl,intr){if(l==k){sum[k]=a[l];return0;
- 2025-01-21李超线段树
更新日志2025/01/21:开工。用处\(O(n\logn)\)解决这个问题实现首先,我们肯定需要一棵线段树,区间为横轴。我们考虑每一段都储存最优的线段,但考虑到线段必然有交点,所以会有较为复杂的情况,下面详细考虑:首先考虑单纯的储存线段,我们把线段横轴影射区间区间修改即可。下面
- 2025-01-20线段树
[线段树]本质为二叉树用来区间查询,区间修改,单点查询,单点修改运用结构体存储。structnode{ intsum,laze;}tree[N*4];//四倍空间//建树voidbuild_tree(intid,intl,intr){ if(l==r){ tree[id].sum=a[l]; return; } intmid=(l+r)/2; build_tree(id*2,l,mid)
- 2025-01-202025 刷题计划 - 线段树
2025刷题计划-线段树A.P3313[SDOI2014]旅行树剖板子题,开\(C\)棵线段树即可。你可能会说开不下?动态开点不就完了。B.P3924康娜的线段树有意思的一道题,貌似\(O(n\logn)\)解法比\(O(n)\)更难?我实现不出来。首先易得期望的计算方式即为:设当前节点\(x\)的深度为
- 2025-01-20使用矩阵乘法维护的线段树
车人去WC了,找了一个巴蜀毕业的哈工大大三学生来给他代课。那就简单记录一下每天都讲了什么吧CFGYM103470PaimonSegmentTree给定一个长度为\(n\)的序列\(a\),以及\(m\)次区间加操作和\(q\)次询问(在处理完所有操作后再询问)。询问操作:假设\(a_{i,j}\)表示进行完第
- 2025-01-19那些年我在 HL 集训做的题【某人别催了!】
Day01.16下午到HL,居然还写了一道题?P8855[POI2002]商务旅行LCA板子。不理解当时为啥要写这个东东,可能是为了热热身吧。Day1讲整体二分,但是没听懂。貌似是魔改版CDQ...不管它。但是我似乎发现了一片新天地,一切的一切都从下面的一道题说起:P3157[CQOI2011]动态逆序对
- 2025-01-19线段树
海亮OJ题单维护差分信息P4243[JSOI2009]等差数列若要在序列上处理等差数列,可以考虑差分法。此时,我们不必将差分数组和数列中的元素一一对应(这会影响理解),而是将差分数组中的一个元素和原序列中对应的两个元素关联(我的理解盲区)。这样,使用线段树时,对于(差分数组的下标)区间\([
- 2025-01-19250118 ABC389总结
昨天激情地打了1场ABC。A一眼秒了。B一眼秒了。C两眼秒了。D1.5眼秒了,然后发现题读错了,不过问题不大,最后还是秒了。第一发没开longlong见祖宗了。全军复诵:不开longlong见祖宗。E一眼dp,但是我不会dp,所以想了一小下直接去看F了。最后的最后试图码了一下单调队列+暴
- 2025-01-17计算几何~三角形面积、点在三角形内、线段相交代码笔记
多边形面积的基本公式:鞋带公式。强调多边形点集是按顺序存储;三角形面积基本公式:海伦公式;向量叉积公式;拓扑关系判断:判断点是否在三角形内;判断两条线段是否相交;代码笔记:#pragmaonce#include<iostream>#include<vector>#include<algorithm>#include<cmath>#in
- 2025-01-17树链剖分
原理:将树以一种划分方式分成若干条链,转换为区间,再用数据结构维护一般形式:两遍dfs初始化+数据结构(线段树/树状数组)解决的问题:各种树上区间操作(维护的东西越多,解决问题的范围就越大)两遍dfs维护的:$fa$[](父节点)$son$[](重儿子)$dep$[](深度)$siz$[](子树大小)$seg$[](树中点在数
- 2025-01-16势能线段树
简介通过定义势能函数\(\phi(i)\)去描绘整个序列的势能从而推导正确的复杂度。例题P4145上帝造题的七分钟2/花神游历各国典。设\(\phi(i)\)表示第\(i\)个元素的势能。一个元素不停的开根一定会变成\(1\),不妨将元素\(x\)改写成\(2^k\)的形式。一次开根会将\(
- 2025-01-16线段树合并
简介将多棵线段树的信息统一起来的高效算法称之为线段树合并。通常合并顺序呈树状结构。例题P3224[HNOI2012]永无乡假设所有点都在一个连通块里,那么我们只需要维护一个值域线段树并在上面二分即可。但此时图不连通,我们该如何快速的统计信息呢?对于连边,并查集可以胜任。对
- 2025-01-16洛谷题单指南-线段树的进阶用法-P3168 [CQOI2015] 任务查询系统
原题链接:https://www.luogu.com.cn/problem/P3168题意解读:一个任务管理系统,能够查询在某个时间点运行的任务中优先级最小的k个任务的优先级之和。解题思路:由于总时间n不超过100000,考虑针对所有时刻建立可持久化线段树,根节点为root[i]的线段树维护时刻i的任务情况,节点区间表示
- 2025-01-16(未完工)「学习笔记」二维数点问题
0.0前言看了一个晚上,加上同桌的讲解,大致了解了二维数点问题的基本思路。0.1前置知识可持久化线段树树状数组1.0概述二维数点问题的一般形式是形如“给定平面上\(n\)个点,每次询问给定一个矩形,求该位于矩形内的点的个数”一类问题,模板题为P2163[SHOI2007]园丁的
- 2025-01-15解题报告-论对“线段树思想”的新理解
解题报告-论对“线段树思想”的新理解一晚上刷了两个线段树知识点,也是见识到了线段树世界的博大精深。我们发现无论怎么写线段树,大体框架都是一样的。那么为什么有那么多种线段树呢?一个是线段树标记的不同。在李超线段树中,每个结点维护的是当前结点最上面那条线的编号,于是更新
- 2025-01-15线段树学习笔记
什么是线段树线段树是一种基于分治思想的二叉树结构,用于在区间上进行信息统计,比树状数组更为通用、直观,支持单点修改、区间修改、区间查询。线段树维护的数据具有可并性,比如区间和、区间积、区间最值等等。模板建树voidbuild(intl,intr,intp){ tre[p].l=l;tre[p].r=r;
- 2025-01-151.11-1.15做题笔记
说句闲话主要记录了一模考完之后做的一些题,有难的也有比较简单的,都是一些不属于任何比赛的题,所以放在这里统一记录了。P3551[POI2013]USU-Take-out题目大意有\(n\)块砖,其中白色是黑色的\(k\)倍,求一个消除序列,满足以下条件:每次消除\(k+1\)个砖,其中\(k\)块白色,\(1\)
- 2025-01-15线段树【区间GCD】
https://codeforces.com/contest/2050/problem/F#include<bits/stdc++.h>#definelcp<<1#definercp<<1|1#defineINF2e9usingnamespacestd;#definelowbit(x)x&(-x)#defineendl'\n'usingll=longlong;usingpii=pair
- 2025-01-14[ARC070E] NarrowRectangles
前言模拟赛\(\rm{T4}\),不会比较正常,仅仅只是记录做法然后就是还有每日一练思路首先是朴素的\(\rm{dp}\)令\(f_{i,j}\)表示考虑到第\(i\)行,其中这一行的左端点位置为\(j\)的最优花费容易写出转移\[f_{i,j}\gets\min_{k\in[j-len_{i-1},j+len_i]
- 2025-01-1464.在Vue3中使用OpenLayers显示带箭头的线段,箭头居中
在WebGIS开发中,使用OpenLayers渲染地图和矢量图形是常见的需求。今天我们来实现一个效果:在Vue3项目中,使用OpenLayers显示带箭头的线段,并让箭头居中。项目环境和技术栈Vue3+CompositionAPIOpenLayersVite构建工具实现效果我们将绘制一条由多个坐标点构成的线
- 2025-01-13线段树入门讲解
有一段时间没有更新了,前面比较忙,所以知识上会有一些跳跃,后面看看有没有时间去补一下吧,没有就算了那现在就开始说一下线段树线段树是一种数据结构,他主要是用于实现快速的区间修改和区间求和这两个功能,同时,有别于树状数组,线段树还有更多的是在于其功能的强大和灵活性上,就比如说,树
- 2025-01-13杂题(二)
要退役做一些自己感觉好久没做过或者没学过的题。P6626[省选联考2020B卷]消息传递套路点分治,把询问挂在点上,然后就是每次处理跨越重心的路径,贡献到目前的每个点上。P2664树上游戏对颜色进行计数,乍一看不可做,但是经过推导之后发现可以直接上点分,路径贡献到点上,差分,用dfs
- 2025-01-13源码分析之Openlayers中CanvasLineStringBuilder类
访问Openlayers网站(https://jinuss.github.io/Openlayers_map_pages/,网站是基于Vue3+Openlayers,里面有大量的实践和案例。觉得还不错,可以给个小星星Star,鼓励一波https://github.com/Jinuss/OpenlayersMap哦~概述在Openlayers中,CanvasLineStringBuilder类用于构建