上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页
摘要: 题目链接: "戳我" 可并堆的一个题目,我写的是左偏树。 我们从下往上面合并,维护一个小根堆,如果在当前节点死亡就弹出,并标记该骑士的终止节点。 这道题和模板不太一样的是还要维护两个标记——add,mul。记得每次调用树上节点值的时候push_down一次!!! 代码如下: cpp include 阅读全文
posted @ 2019-03-13 16:07 风浔凌 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 线段树qwqwq动态维护最长上升子序列的长度 对于一个区间,我们记录两个参数——$ans$表示这个区间里面的上升子序列的个数,$k$表示最大的斜率。 关键是怎么合并?肯定是左区间的ans+右区间在左区间最大斜率的限制下的上升子序列个数。 怎么计算右区间的那一部分?我们把右区间分 阅读全文
posted @ 2019-03-13 16:03 风浔凌 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 60分部分分还是很好拿的,排序(按照左端点为第一关键字,右端点为第二关键字)之后一个$O(n^2)$,暴力判交,更新最小值,就可以水过前12个测试点。 现在我们来考虑正解—— 区间1e9有点大,先离散化一下。 然后我们按照长度从小到大排序qwq,保证一个单调性,然后使用尺取法。 阅读全文
posted @ 2019-03-12 10:59 风浔凌 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" ~~真激动。。我这等蒟蒻竟然竟然A了数据结构题~~ 树剖+动态开点线段树 就是给每一个信仰建立一颗线段树。。然后发现空间开不下,就动态开点qwqwq,具体我觉得还是看代码更详细。。。。 代码如下: cpp include include include include incl 阅读全文
posted @ 2019-03-12 09:47 风浔凌 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 题意:将一个长度为n的序列分为k段,使得总价值最大。一段区间的价值表示为区间内不同数字的个数 $n include include include include define MAXN 350010 using namespace std; int n,k; int a[MA 阅读全文
posted @ 2019-03-11 23:01 风浔凌 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 最小割+线段树模拟网络流 (自己手动画了一个图,有点丑还请见谅) 首先声明一些数组:a[i]表示左边图编号为i的线段的长度,b[i]表示右边图编号为i的线段的长度,sum[i]表示选取左边编号为i的线段的最小代价。 下面我们来看这个题怎么做—— 比较神仙。既然题目中都说了"ye 阅读全文
posted @ 2019-03-11 16:31 风浔凌 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 比较神仙的一个题(至少对于我这个小蒟蒻来说。。。)下面尽可能详细地解释一下吧。。。学习来源: "这位神仙的题解" 其实就是对于操作的转换。我们设(x,y)为操作的参数,设当前数为a,操作为max(a+x,y)——赋值即( inf,b),增加为(a, inf)。(是不是感觉很妙啊 阅读全文
posted @ 2019-03-11 14:10 风浔凌 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 这相当于是一个李超线段树的模板qwqwq,题解就不多说了。 代码如下: cpp include include include include define MAXN 500010 using namespace std; int n,m; int t[MAXN 1; if(k 阅读全文
posted @ 2019-03-11 13:32 风浔凌 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 先贴一个可以获得80pts的代码——(你们说如果加上fread会不会更快啊qwqwq,不过我没有用。。。。。。) 阅读全文
posted @ 2019-03-11 00:05 风浔凌 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" ~~这。。基础吗。。。。反正操作我是没有想到~~ 其实就是有了加入的操作之后,开方操作。。。我们不能暴力搞了。 那怎么办? 化开方为减法操作!也就是减去它和它sqrt之后的数值的差即可! 什么情况下可以这样做呢?首先如果整个区间的数值都一样的话,显然是可以这样子搞的。 但是这样 阅读全文
posted @ 2019-03-10 19:29 风浔凌 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 落谷时间卡得真紧。。。。test9 和test11 根本过不去,只有在BZOJ上面A掉了。。。。。。 首先可以看得出这是一个线段树维护的数据结构题目吧qwqwq 但是对于这种阶乘修改,显然是不具备可加性的,所以我们只能暴力修改。。。。但是暴力修改时间复杂度是会炸天的! 但是我们 阅读全文
posted @ 2019-03-10 16:46 风浔凌 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 递归+拓展欧拉定理 因为指数非常大,所以我们可以直接套用拓展欧拉定理,递归地计算下去。 如果p=1的时候就停止,直接返回0即可。 代码如下: cpp include include include include define MAXN 100010 using namespa 阅读全文
posted @ 2019-03-09 22:21 风浔凌 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" ~~想改天把花神题都做了qwqwqwq~~ 开根号不具有可加性。。所以我们得暴力更改。。也就是说要叶子结点一个一个修改,然后往上面合并。。。。 但是这样为什么不会T?因为对于一个数,它不需要几次开根号就会变成0或者1,又因为1开根号还是1,0开根号还是0,所以开了就跟没开一样。 阅读全文
posted @ 2019-03-09 17:03 风浔凌 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 实话实话,看了几篇题解真的没看懂,~~我觉得讲的都有问题。~~这里对于线段树维护的s写了一点我自己的理解。 看到等差数列,我们考虑对数列做差,这样如果是等差数列,那么值应该相等。(比较容易维护,修改操作就变成了两个单点修改+一个区间修改,如果还是不理解的话可以参考一下代码) 查 阅读全文
posted @ 2019-03-09 15:47 风浔凌 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 补一张图 我们尝试把圆上的扇形转化成直线上的矩形——我们维护[1,2 m]的区间,那么每个能产生贡献的子区间的长度 第K大的半径的平方的总和就是answer了。 怎么转化呢?左端点为a1+m+1,右端点为a2+m。为什么要+m?因为原先的范围是[ m,m]的,所以整体右移。为什 阅读全文
posted @ 2019-03-08 07:48 风浔凌 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 我们枚举每一条边的流量x,将它作为底流(也就是比它大的的流量变成差值,比它小的流量为0),然后我们设x就是路径上第K大的那个边的流量。然后跑最短路,加上dis[n]就是当前的答案。然后取min即可。 算法时间复杂度$O(n^2logn)$ 为什么这样子就是最小的呢?????~~我也很懵逼啊~~ 因为 阅读全文
posted @ 2019-03-07 18:41 风浔凌 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 当怅惘在某一个瞬间弥漫上心头, 如潮水冲岸,纠缠不休。 往后看, 是雾,昨日万事未果满腔愁。 往前看, 是雾,明朝何事难料未绸缪。 我要和别人不一样。 我在心里这么说—— 我要和别人不一样。 我要纵使今日都不识, 仍然来日剑出天下知。 我要青骢一骑绝千里, 更兼朝夕勤恳星斗驰。 当这明媚三月的春风姗 阅读全文
posted @ 2019-03-06 23:39 风浔凌 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 可持久化01trie+树链剖分 其实序列上的大家应该都会做,这个题还不过是把序列上的放到了树上而已。多来一个树剖就可以解决。 dummyummy说可以不用树剖写。。可是我还是不怎么会。。。等他写完了我再放那种解法的吧。。。 代码如下: cpp include include i 阅读全文
posted @ 2019-03-06 23:02 风浔凌 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 线段树在线维护动态图连通性 有一篇超级棒的线段树+大力分类讨论的题解! "戳我" ~~可是我还是不会写这个做法qwqwqwq~~ 这里提供线段树分治的写法。感觉比较不需要智商,就是跑的有点慢了。。。 阅读全文
posted @ 2019-03-06 19:57 风浔凌 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 【线段树分治版本代码】 这里面的线段树是时间线段树,每一个节点都要开一个vector,记录当前时间区间中存在的边的标号qwq cpp include include include include include include include include define M 阅读全文
posted @ 2019-03-06 15:23 风浔凌 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 可持久化01trie~~ 其实还是先求出来前缀异或和,剩下的就是可持久化01trie——其实和主席树差不多,我们对每一个节点都建立一颗trie树。在这个题里面,用cnt[i]来表示节点编号为i的这个点所表示的前缀出现了多少次,我们利用差分思想就可以求出来这个前缀在当前区间中到底 阅读全文
posted @ 2019-03-06 08:16 风浔凌 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" emmmmmmmmmm异或一个数两次等于没有操作对吧。。。所以我们按照前缀的异或和,建一个01trie。。。。。然后之后。。。。。直接在树上贪心地找能和它每一位不一样的数。。。。然后。。。。就没有了吧qwqwq 代码如下: cpp include include include 阅读全文
posted @ 2019-03-05 21:09 风浔凌 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 线段树中差分和前缀和的应用 其实对于加上等差数列的操作我们可以分成这样三步—— 然后查询的时候1到当前位置的和就是这个数的值啦! 代码如下: PS:(蒟蒻的一点小想法) 这道题让我们求的是单点查询。。。如果是 区间查询 呢? 这样我们就别用前缀和来表示这个数了,但是因为等差数列 阅读全文
posted @ 2019-03-05 13:42 风浔凌 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 最小圆覆盖。 1、枚举第一个点,考虑当前圆是否包含了这个点,如果没有,则把圆变成以这个点为圆心,半径为0的圆。 2、枚举第二个点,考虑圆是否包含了这个点,如果没有,则把圆变成以这两个点的中点为圆心,半径为两点距离一半的圆。 3、枚举第三个点,节点是否在圆内,如果不在,直接把圆变 阅读全文
posted @ 2019-03-05 11:00 风浔凌 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 一个最小圆覆盖的模板题吧。。。 最小圆覆盖怎么做?? 就是枚举三个点,第一个点做圆心,第二、三个点和第一个点联合起来确定一个圆。 看起来是$O(n^3)$的是不是?但是其实均摊时间复杂度是$O(n)$的。具体为什么我也不会证,但是我们可以知道,如果枚举后面的点已经在前面确定好的 阅读全文
posted @ 2019-03-05 10:42 风浔凌 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 找规律。 不过为了方便,每次我们计算入口和某一个出口之间需要花费的体力值的时候,不妨把x较小的假设成塔顶,这样的话另一个就不需要分类讨论了。 详细请看代码 cpp include include include include include define MAXN 10000 阅读全文
posted @ 2019-03-05 07:43 风浔凌 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 题目链接 "戳我" 能看懂的题目翻译:给你N,让你求$N=\phi N$多少次N=1. 根据唯一分解定理,以及题目中对$\phi$的计算提示,我们知道,每一次计算,可以使得其中至多一个2变成1,不断地重复这个操作,这个数就会越来越小,直到达到1. 所以我们求出来一个数中有多少个2作为因子即可。 nl 阅读全文
posted @ 2019-03-05 07:41 风浔凌 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 比较水的一个题,直接处理点,找在直线上的可以覆盖到它的区间,然后做最小线段覆盖即可; 代码如下: 阅读全文
posted @ 2019-03-04 20:08 风浔凌 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 题目链接 "戳我" 最短路DAG上计数 经过点的最短路计数和经过边的最短路计数实在不能一概而论。。。。qwqwqwqwqwq 在做这道题之前,让我先捞上一张来自xyz32768大佬的图 对于一条边(x,y)——求S到x的最短路径个数是很好求的一件事,对于一条边两个端点u,v,sum[v]+=sum[ 阅读全文
posted @ 2019-03-04 17:39 风浔凌 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 就是在floyd计算dis的时候,顺便把两点之间最短路的个数也计算了qwqwq $sum[i][j]=\sum sum[i][k] sum[k][j]$ 代码如下: cpp include include include include include define MAXN 阅读全文
posted @ 2019-03-04 13:47 风浔凌 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 题目链接 "戳我" $ans=\sum_{i=l}^r a[i] (i l+1) (r i+1)$ $ans=\sum_{i=l}^r a[i] ( i^2+(r+l)i+(r l+1 rl))$ 所以说现在我们需要维护的就是五个量—— $sum1=\sum_{i=l}^r a[i]$ $sum2= 阅读全文
posted @ 2019-03-04 10:20 风浔凌 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 就是乘法分配律。。。 但是一定要注意判重+判断输入的值是否都在n里面+谨防爆int!!!! 代码如下: cpp include include include include include include include define MAXN 1000010 define 阅读全文
posted @ 2019-03-03 21:51 风浔凌 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 设$dp[i][j]$表示在排除掉原先已经有指定座位的人之后,第i个人之后有j个人的编号我们已经人为地确定过了 的方案数。 那么我们就有$dp[i][j]=dp[i+1][j k] C_j^k$ 因为我们需要知道第i个之后有多少个人预先已经确定了座位。所以我们还需要预先处理一个 阅读全文
posted @ 2019-03-03 19:36 风浔凌 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 动态维护凸包的题目qwqwq 30分还是很好写的。。直接一个凸包就完事了 代码如下: 阅读全文
posted @ 2019-03-02 17:53 风浔凌 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 其实我们观察一下这八个衍生的向量,可以知道本质上它们只有4个。 即$(a,b),( a,b),(b,a),(b, a)$。 之后就是 $$\begin{cases} an+am+bp+bq=x\\ bn bm+ap aq=y \end{cases}$$ 合并同类项—— $$\b 阅读全文
posted @ 2019-03-02 10:06 风浔凌 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 30分暴力。。。。暴力提取子序列即可qwqwq cpp include include include include include include define MAXN 5010 using namespace std; int lena,lenb,n,ans,cnt; 阅读全文
posted @ 2019-03-02 08:11 风浔凌 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 费用流。 将每天分成早上和晚上两个点。源点向早上连容量INF,费用为进货量的边。早上向汇点连容量供货量,费用0。早上向晚上连容量为S,费用为0的边。晚上向第二天早上连容量S,费用0。之后跑最小费用最大流即可。 代码如下: cpp include include include 阅读全文
posted @ 2019-03-02 07:01 风浔凌 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 如果成环的话,显然是要么里面的点一个都不选,要么全部都选qwqwq,那么我们可以将环先tarjan处理一下,将其缩成一个点。qwq(处理技巧还是比较新奇的,详情见代码) 开始先不要和0连,处理好再连。这样之后就是一个以0为根的树形结构了qwqwq。 设$dp[i][j]$表示以 阅读全文
posted @ 2019-03-01 19:46 风浔凌 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" ~~数组开小火葬场qwqwq~~ 就是一个贪心吧。对于一个数,我们知道只有两种摆放方式。所以我们可以先都放到新的里面,然后做一下新的 原先的差,按照差从大到小排序,依次提取数值减去即可。 代码如下: cpp include include include include inc 阅读全文
posted @ 2019-03-01 16:33 风浔凌 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 二分答案+最大流。 看到第K大的数的最小值是多少,我们想到二分,把他转化为最大数最小问题——二分一个数x,如果有 =n k+1个数不比它大,那么它就应当不大于当前数,否则应当大于当前数。 因为每一行一列只能摆放一个棋子,所以我们把S向每一行连边,流量为1。每一列向T连边,流量为 阅读全文
posted @ 2019-03-01 16:31 风浔凌 阅读(319) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页