这些圆一定是在同一水平面上的,由于他们没有相交,因此我们发现他们每个人与外界关系可以分为,1.存在并圈圈 2.存在圈圈并被割,因此我们把所有的圆都加1,把被割的在加1,就可以啦,因此我们开一个线段树,维护一段区间有没有被全部覆盖 #include <cstdio> #include <cstring> #include <iostream> #include <cstdlib> #include <algorithm> #define R reg…
题面传送门 sb 出题人不在题面里写 \(b_i=0\) 导致我挂成零蛋/fn/fn 首先考虑树链剖分将路径问题转化为序列上的问题,因此下文中简称"位置 \(i\)"表示 DFS 序为 \(i\) 的点,\(a_i,b_i\) 分别借指 DFS 为 \(i\) 的点的 \(a_i,b_i\).那么每次操作可以看作将一段区间上的位置清空并加上这段区间上所有位置的贡献.注意到这个清空形式单一,具体来说如果设 \(t_i\) 表示上一次位置 \(i\) 被清空的时刻,那么对于一个时刻 \(T…
题目原网址:http://acm.hdu.edu.cn/showproblem.php?pid=6183 题目中文翻译: Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Others) Total Submission(s): 1677    Accepted Submission(s): 500 Problem Description 你喜欢画画吗? Little D不喜欢画画,特别…
P3960 列队 题意 题目描述 Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia所在的方阵中有\(n \times m\)名学生,方阵的行数为\(n\),列数为\(m\). 为了便于管理,教官在训练开始时,按照从前到后,从左到右的顺序给方阵中的学生从\(1\)到\(n \times m\)编上了号码(参见后面的样例).即:初始时,第\(i\)行第\(j\)列的学生的编号是\((i-1) \times m + j\)…
题目大意 给定一个长度为n的正整数序列,令修改一个数的代价为修改前后两个数的绝对值之差,求用最小代价将序列转换为不减序列. 其中,n满足小于500000,序列中的正整数小于10^9 题解(引自mzx神犇的题解) 本次test跪0了,尴尬 解法1(40分) 考虑dp 设到第i个数为止,序列中数全部<=j的最小代价为f[i][j] 可以推出f[i][j]=min{f[i-1][j]+|ai-j|,f[i][j-1]} 解法2(60分) 是对于第一个dp思路的优化 既然数字是固定的,可以离散化,降低空…
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3531 分析: 对于每个颜色(颜色<=10^5)都建立一颗线段树 什么!那么不是MLE了吗! 类似于主席树时候的操作,采用动态开点线段树,对于某个插入操作,从对应颜色的线段树根节点开始对应往下找,一但找到了空节点,则新建节点继续往下,知道元节点. 这样对于每个点,顶多开一条链 所以总的空间是nlogn的 对于原问题的几个操作,修改权值.询问和.询问最大值都是树链剖分的经典操作 还有个操…
4636: 蒟蒻的数列 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 247  Solved: 113[Submit][Status][Discuss] Description 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将数列[a,b)这个区间中所有比k小的数改为k,他想知 道N次操作后数列中所有元素的和.他还要玩其他游戏,所以这个问题留给你解决.   Input…
https://codeforces.com/contest/893/problem/F 题意: 给一个有根树, 多次查询,每次查询对于$x$i点的子树中,距离$x$小于等于$k$的所有点中权值最小的一个 查询强制在线 题解: 显然,暴力就是,对于每次搜索深搜距离x小于$k$的所有点搜索 那么我们考虑优化 首先,查询对$x$距离小于$k$的所有点,等价于在整颗树上,查询$\forall dep(x)≤dep(i)≤dep(x)+k$中,在$x$子树中的点的最小值 那么,一个大胆的想法就是,对于每…
题意: 最大$10^9$的区间, $3*10^5$次区间修改,每次操作后求整个区间的和 题解: 裸的动态开点线段树,计算清楚数据范围是关键... 经过尝试 $2*10^7$会$MLE$ $10^7$会$RE$ 用$vector$但是一开始没有$resize$到最大也会$MLE$ 如果节点内部信息保存了节点的区间,无论怎么样都会$MLE$ 最终$1.5*10^7$的$vector$/数组可以过 #include <bits/stdc++.h> #define endl '\n' #define…
题目链接 CF915E Physical Education Lessons 题解 动态开点线段树 代码 /* 动态开点线段树 */ #include<cstdio> #include<cstring> #include<algorithm> inline int read() { int x = 0,f = 1; char c = getchar() ; while(c < '0' || c > '9')c = getchar(); while(c <…