上一页 1 2 3 4 5 6 7 ··· 17 下一页
摘要: 发现一道有意思的题目。 题意 一开始,数列编辑器里没有数字,只有一个光标。这个数列编辑器需要支持五种操作。 I x 在当前光标前插入数字 \(x\) 。 D 删除当前光标前的数字。 L 光标向前移动一个数字。 R 光标向后移动一个数字。 Q k 设光标之前的数列是 \(\{a_1,a_2,\cdot 阅读全文
posted @ 2022-01-04 16:46 Point_King 阅读(54) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2022-01-04 08:48 Point_King 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 最大权闭合子图 问题 给定一个有向图,点有点权(有正负),从中选出一个子图的点权和最大并且满足对于每一条有向边 \((u,v)\) ,若 \(u\) 在子图内则 \(v\) 必须在子图内部。 解法 考虑每一个点最后必然只存在于两种情况之中——在或不在最大权闭合子图中。因此我们考虑使用最小割,将位于最 阅读全文
posted @ 2022-01-03 21:23 Point_King 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 闲话:之前在做这道题的时候猜了一个结论,最长上升子序列的个数不能超过二,当时证着证着觉得假了。。。 首先一个序列如果能满足下界,那么其中的每一个元素必然是只向其目标方向移动。又由于,一个数的移动情况与其左边比其大的数的个数和右边比其小的数的个数决定,而且必然是先向左再向右,所以对于任意一个数,不能同 阅读全文
posted @ 2022-01-02 14:48 Point_King 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 感觉是一道比较具有启发性的异或计数题。 考虑存在一个比较显然的想法就是我们通过高位来分组。我们考虑在当前位 \(i\) 时分成两组 \(A,B\) ,表示我们至少要在 \(A,B\) 两组各中选择一个,以满足 \(i+1\) 位及以上的上界被填满。 然后我们便根据 \(x\) 的当前位来分类,首先我 阅读全文
posted @ 2021-12-31 12:03 Point_King 阅读(147) 评论(2) 推荐(0) 编辑
摘要: 傻逼才用左端点排序,用最少的点覆盖所有的线段的贪心是按右端点排序的! 是按右端点排序的!!! #include<bits/stdc++.h> using namespace std; const int N=5e4+5; int n,x; long long a[N],b[N]; int s[N], 阅读全文
posted @ 2021-12-30 17:42 Point_King 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 本文作者是跟着这篇 有上下界的网络流学习笔记 - liu_runda 学的,如有雷同,并非巧合。 备注:在费用流中需要强制钦定某条边流满时,我们可以强制其费用为正或负 \(\infty\) ,这样就一定会流满了。 无源汇有上下界可行流 定义:一个满足每条边的流量符合再上下界之间并且每一个点的流出量等 阅读全文
posted @ 2021-12-30 13:56 Point_King 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 感觉像是长剖?具体的,我们思考如何合并两个子树。 因为本质上 gcd 是属于高维前缀和的范畴的,我们使用 \(\text{Dirichlet}\) 后缀和来合并,然后再后缀差分一下。这样我们合并两个子树的复杂度就是 \(O((n+m)\log\log(n+m)\) 的,其中 \(n,m\) 是两棵子 阅读全文
posted @ 2021-12-29 18:54 Point_King 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 卧槽,EDU 真难。😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭 考虑 \(n\le 10\) 实际上你可以直接枚举绝对值怎么拆,然后再求最值即可。 #include<bits/stdc++.h> using name 阅读全文
posted @ 2021-12-28 16:40 Point_King 阅读(1754) 评论(0) 推荐(0) 编辑
摘要: 感觉自己对于高维前缀和的理解有点问题。 我们一般认为的高维前缀和基本是在二进制下运作的,但是实际上可以运用地更加广泛。 比如我们定义一个四进制数的运算,对于每一位 $x\oplus y=\begin{cases} x&x=y\0&x\ne y\end{cases}$ ,实际上这个东西也是可以进行高位 阅读全文
posted @ 2021-12-27 19:02 Point_King 阅读(173) 评论(0) 推荐(1) 编辑
摘要: P3770 [CTSC2017]密钥 首先暴力做是 \(O(k^2)\) 的。 实际上就是让你维护一个全局加一减一,添加或删除一个数,问大于 \(0\) 的数的个数,维护一个桶即可。 #include<bits/stdc++.h> using namespace std; const int Zer 阅读全文
posted @ 2021-12-27 14:26 Point_King 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 主要结合两道例题讲,复杂度的计算很重要。 LOJ6290 花朵 非常容易可以考虑到树上背包的做法,但是过不了。 怎么将这个 \(\text{dp}\) 优化呢?考虑背包实际上就是一个卷积的形式,所以我们可以用多项式科技优化卷积过程。 可以想到的,我们不能将背包直接卷积,因为复杂度由 \(O(nm)\ 阅读全文
posted @ 2021-12-25 09:33 Point_King 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 感觉模拟费用流这个东西几乎可以和反悔贪心画上等号了(可能是我菜,所以理解有问题,欢迎开 d ),但是具体实施下来还是有许多的细节的。 如果是两两匹配的问题,实际上我们只需要将自己的反向情况塞到另一方的堆里,通过这种方式来实现退流的操作。如果是不需要满足最大流的费用流,我们是可以直接做的,但是这个方法 阅读全文
posted @ 2021-12-23 16:47 Point_King 阅读(346) 评论(0) 推荐(1) 编辑
摘要: 简介 我都还不会怎么简介啊。 注,该篇是对着 dp套dp学习笔记 - dead_X - 博客园 (cnblogs.com) 抄的,如有雷同,并非巧合。 dp 和 dp套dp 的关系 dp套dp 实际上就是将内层 dp 的结果作为外层 dp 的状态。 感觉根据这个定义根本搞不懂呢。 举个例子 BZOJ 阅读全文
posted @ 2021-12-23 14:12 Point_King 阅读(438) 评论(0) 推荐(1) 编辑
摘要: 这同样也是从学长那里偷来的,姑且叫它扩展单调队列吧。 它支持维护一个数据结构,可以从末尾加删元素和开头加删元素(双端队列),同时维护其中所有元素的一个运算和(该运算得是满足结合律的运算,如果为 \(\max\) 就是我们平时看到的单调队列)。 具体的想法就是选择一个关键点,在关键点前的维护后缀和,在 阅读全文
posted @ 2021-12-22 16:58 Point_King 阅读(41) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 17 下一页