上一页 1 2 3 4 5 6 7 8 9 10 ··· 20 下一页
摘要: 思路:01trie 按位维护 提交:5边 错因:爆int + 少处理询问时的右端点 题解: 见代码(已经不想说什么了) 代码 cpp //I have my own flg; include define ll long long define R register int using namesp 阅读全文
posted @ 2019-09-17 21:14 LuitaryiJack 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 傻爆了QwQ 阅读全文
posted @ 2019-09-17 08:22 LuitaryiJack 阅读(199) 评论(0) 推荐(0) 编辑
摘要: A1 先贪心的(可能你们觉得很显然),我们直接从前往后扫,并且让每个区间尽量长。 如何判断?差的 gcd 不为 1 + map 判重复元素。 A3 DP + 堆优化 $f[i]=\min(\sum_{j=i k}^i f[j] + max(b[j],s[i] s[j]))$ 发现每个点在又收税转为路 阅读全文
posted @ 2019-09-16 23:27 LuitaryiJack 阅读(267) 评论(3) 推荐(0) 编辑
摘要: A1 100pts 考试时暴力打表+发现三次函数于是暴力解方程。 更好的: 发现是在枚举子矩形并求面积,于是有: $\sum_{x}^n\sum_{y}^m x y \times (n x+1) (m y+1)$ 设$f(x)=\sum_{x}^n x (n x+1)$ $=1 n + 2 (n 1 阅读全文
posted @ 2019-09-16 19:16 LuitaryiJack 阅读(360) 评论(1) 推荐(0) 编辑
摘要: 思路:笛卡尔树?(好像并不一定要建出来,但是可以更好理解) 提交:2次 错因:没有判左右儿子是否为空来回溯导致它T了 题解: 建出笛卡尔树,考虑如何计算答案: 先预处理每一个值出现的位置 $pos[]$; 对于每一个有左右儿子的点,设他在原序列中的值为 $mx$,根据笛卡尔树的性质,他比自己的子树中 阅读全文
posted @ 2019-09-15 23:27 LuitaryiJack 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 思路:。。。乱搞数据结构?? 提交:1次 题解: 观察到除了单点就是全局操作,所以我们维护一个全局加法标记add和乘法标记mul和答案sum。 单点修改时,比如我们要把 $pos$ 位置改成 $y$ ,实际上我们应该储存 $x$ , 且 $y=mul x+add$ ,即我们储存的是逆标记操作后的值。 阅读全文
posted @ 2019-09-15 22:57 LuitaryiJack 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 思路:数据结构 提交:Inf次 题解: 树状数组套主席树 考虑静态区间第k大是一个前缀主席树,但是如果修改是 $O(nlogn)$ 的,查询时 $O(logn)$ ,考虑去均衡两部分的复杂度,如何均衡的维护前缀和?于是上了树状数组。于是乎主席树 $i$ 维护的是 $[i lowbit(i)+1,i] 阅读全文
posted @ 2019-09-14 07:42 LuitaryiJack 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 作为一个要考试的人,还不会并查集,简直了。。。 带权并查集 先上一道题: "P2024 [NOI2001]食物链" 相信大家都会吧QwQ 大致这样想 所以此时的边感觉是有方向的。 再来看一道别的题: "P4079 [SDOI2016]齿轮" 还是类似刚才的思路,将齿差比作为边权,若在同一个连通块就c 阅读全文
posted @ 2019-09-12 08:37 LuitaryiJack 阅读(450) 评论(1) 推荐(1) 编辑
摘要: 既然考这么差就来写题啦OTZ T1 猜结论?猜nm! 一直到考试结束都没猜出来=。=我就好奇别人如何猜出来的 我们来说DP(from ZBK) 设$dp[i][j]$表示胜or负 那我们来看一下代码: T3 脑子是个好东西 考试时:额?$K\leq 10$ ???? 管他呢,先打暴力(还有45min 阅读全文
posted @ 2019-09-11 23:18 LuitaryiJack 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 怕不是今天刚会写异或高斯消元。。还是抄的lyd的 思路:异或高斯消元 提交:1次 题解: 若解唯一,答案为1 无解即出现系数矩阵为0,但增广矩阵为1 有自由元即一整行都是0,此时答案为 $2^{\texttt{自由元的数量}}$ 2019.09.04 65 阅读全文
posted @ 2019-09-04 21:38 LuitaryiJack 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 思路:单调栈 提交: 5次 错因:单调栈写法有问题+前缀和写错 题解: 若有$ =k\ \&\&\ =2k$。 这样,我们可以尝试去切掉他的行来不断减少他的权值和。 如果发现某一行 $ =2k$ ,我们应该去且他而不是切剩下的矩形(剩下的可能过小)。 当然如果你切着切着发现出现了一个矩形他的权值和$ 阅读全文
posted @ 2019-09-03 20:27 LuitaryiJack 阅读(212) 评论(1) 推荐(0) 编辑
摘要: 思路:树哈希 提交:1次 题解: 怕不是用的 "oi wiki" 上的公式: $$f_u=size_u\times\sum f_{son_{u,i}}\times Base^{i 1}$$ cpp include define R register int using namespace std; 阅读全文
posted @ 2019-09-03 20:09 LuitaryiJack 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 思路:可持久化线段树+巧妙地树上差分 提交:1次 题解: 我们从根开始,类似主席树板子,一个一个加点,使得从根到叶子节点时一个类似前缀和的主席树,即 $u$ 点维护的是 $1$ 到 $u$ 的路径。 这样我们就可以在 $u+v lca(u,v) fa(lca(u,v))$ 这样一颗线段树上二分了。 阅读全文
posted @ 2019-09-03 19:53 LuitaryiJack 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 思路:可持久化线段树+标记永久化 提交:3次 错因:标记维护出锅+没开long long 题解: 与正常的可持久化线段树的区别在于,本题是区间修改。 我们应用标记永久化的思想,在$[l,r]$中访问到的第一级线段打上标记; 如图: 然后更新sum数组时加上子节点的标记(完全覆盖子树信息)。 quer 阅读全文
posted @ 2019-09-03 19:37 LuitaryiJack 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 昨天晚上快走时看了这题:不是exgcd+excrt吗? 旁边张大佬默默看了我一眼(觉得我会死) 然后于是我今天中午才调出来Orz 思路:exgcd+excrt 提交:5次 错因:龟速乘传进去了负数,并且用的int;之前写过的excrt的板子有问题 题解: 先要特判一种情况:若 $p[i]=1$ ,答 阅读全文
posted @ 2019-09-03 13:17 LuitaryiJack 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 思路:动态点分治 提交:3次 错因:在加点的时候堆的操作错误。 题解: 为什么有时候说点分治是一种数据结构呢?我觉得是因为点分治的核心是在分治过程中产生的树形结构,即点分树,它的深度是 $\log$ 级别的。 对于这道题,我们首先要建立出来点分树(只记father),每个点维护所有孩子的答案。当修改 阅读全文
posted @ 2019-08-31 09:08 LuitaryiJack 阅读(163) 评论(0) 推荐(1) 编辑
摘要: 思路:最短路+点分治 提交:2次 错因:更新桶的时候没有重置,而直接加上了。 题解: 对于构建最短路树,我们可以先跑最短路,然后dfs一遍连边。 然后就是点分治了,还是一些桶,存点数为$x$的最长路径的条数。记得更新路径长度时桶要清零。 代码 cpp include include include 阅读全文
posted @ 2019-08-31 09:07 LuitaryiJack 阅读(203) 评论(0) 推荐(1) 编辑
摘要: 思路: 点分治 提交:5次 题解: 刚开始用排序+双指针写的,但是调了一晚上,总是有两个点过不了,第二天发现原因是排序时的$cmp$函数写错了:如果对于路径长度相同的,我们从小往大按边数排序,当双指针出现$==k$时,即我们应先左移右指针,否则答案可能会变劣(仔细想一想);若反着排序,应该先右移左指 阅读全文
posted @ 2019-08-31 09:06 LuitaryiJack 阅读(218) 评论(0) 推荐(1) 编辑
摘要: 思路:点分治 提交:1次 题解: 不需要什么容斥。。。接着板子题说: 还是基本思路:对于一颗子树,与之前的子树做贡献。 我们把路径的权值在$\%3$意义下分类,即开三个桶$c[0],c[1],c[2]$,分别记录每一类的路径条数。合并的时候显然有: $$c[0]\cdot mem[0]\cdot 2 阅读全文
posted @ 2019-08-31 09:05 LuitaryiJack 阅读(100) 评论(0) 推荐(1) 编辑
摘要: 思路:点分治 提交:1次 题解: 要求权值和$\leq K$ 的路径,我们可以类比 "点分治的模板" ,把长为$len$是否存在,改为$len$的路径的条数,并用用树状数组维护前缀和,这样就可以求出答案。 代码: cpp include define R register int using nam 阅读全文
posted @ 2019-08-31 09:04 LuitaryiJack 阅读(106) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 20 下一页