随笔分类 -  题解

上一页 1 2 3 4 5 6 7 8 ··· 16 下一页
摘要:既然考这么差就来写题啦OTZ T1 猜结论?猜nm! 一直到考试结束都没猜出来=。=我就好奇别人如何猜出来的 我们来说DP(from ZBK) 设$dp[i][j]$表示胜or负 那我们来看一下代码: T3 脑子是个好东西 考试时:额?$K\leq 10$ ???? 管他呢,先打暴力(还有45min 阅读全文
posted @ 2019-09-11 23:18 LuitaryiJack 阅读(202) 评论(0) 推荐(0)
摘要:怕不是今天刚会写异或高斯消元。。还是抄的lyd的 思路:异或高斯消元 提交:1次 题解: 若解唯一,答案为1 无解即出现系数矩阵为0,但增广矩阵为1 有自由元即一整行都是0,此时答案为 $2^{\texttt{自由元的数量}}$ 2019.09.04 65 阅读全文
posted @ 2019-09-04 21:38 LuitaryiJack 阅读(199) 评论(0) 推荐(0)
摘要:思路:单调栈 提交: 5次 错因:单调栈写法有问题+前缀和写错 题解: 若有$ =k\ \&\&\ =2k$。 这样,我们可以尝试去切掉他的行来不断减少他的权值和。 如果发现某一行 $ =2k$ ,我们应该去且他而不是切剩下的矩形(剩下的可能过小)。 当然如果你切着切着发现出现了一个矩形他的权值和$ 阅读全文
posted @ 2019-09-03 20:27 LuitaryiJack 阅读(239) 评论(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 阅读(185) 评论(0) 推荐(0)
摘要:思路:可持久化线段树+巧妙地树上差分 提交:1次 题解: 我们从根开始,类似主席树板子,一个一个加点,使得从根到叶子节点时一个类似前缀和的主席树,即 $u$ 点维护的是 $1$ 到 $u$ 的路径。 这样我们就可以在 $u+v lca(u,v) fa(lca(u,v))$ 这样一颗线段树上二分了。 阅读全文
posted @ 2019-09-03 19:53 LuitaryiJack 阅读(167) 评论(0) 推荐(0)
摘要:思路:可持久化线段树+标记永久化 提交:3次 错因:标记维护出锅+没开long long 题解: 与正常的可持久化线段树的区别在于,本题是区间修改。 我们应用标记永久化的思想,在$[l,r]$中访问到的第一级线段打上标记; 如图: 然后更新sum数组时加上子节点的标记(完全覆盖子树信息)。 quer 阅读全文
posted @ 2019-09-03 19:37 LuitaryiJack 阅读(215) 评论(0) 推荐(0)
摘要:昨天晚上快走时看了这题:不是exgcd+excrt吗? 旁边张大佬默默看了我一眼(觉得我会死) 然后于是我今天中午才调出来Orz 思路:exgcd+excrt 提交:5次 错因:龟速乘传进去了负数,并且用的int;之前写过的excrt的板子有问题 题解: 先要特判一种情况:若 $p[i]=1$ ,答 阅读全文
posted @ 2019-09-03 13:17 LuitaryiJack 阅读(208) 评论(0) 推荐(0)
摘要:思路:动态点分治 提交:3次 错因:在加点的时候堆的操作错误。 题解: 为什么有时候说点分治是一种数据结构呢?我觉得是因为点分治的核心是在分治过程中产生的树形结构,即点分树,它的深度是 $\log$ 级别的。 对于这道题,我们首先要建立出来点分树(只记father),每个点维护所有孩子的答案。当修改 阅读全文
posted @ 2019-08-31 09:08 LuitaryiJack 阅读(181) 评论(0) 推荐(1)
摘要:思路:最短路+点分治 提交:2次 错因:更新桶的时候没有重置,而直接加上了。 题解: 对于构建最短路树,我们可以先跑最短路,然后dfs一遍连边。 然后就是点分治了,还是一些桶,存点数为$x$的最长路径的条数。记得更新路径长度时桶要清零。 代码 cpp include include include 阅读全文
posted @ 2019-08-31 09:07 LuitaryiJack 阅读(216) 评论(0) 推荐(1)
摘要:思路: 点分治 提交:5次 题解: 刚开始用排序+双指针写的,但是调了一晚上,总是有两个点过不了,第二天发现原因是排序时的$cmp$函数写错了:如果对于路径长度相同的,我们从小往大按边数排序,当双指针出现$==k$时,即我们应先左移右指针,否则答案可能会变劣(仔细想一想);若反着排序,应该先右移左指 阅读全文
posted @ 2019-08-31 09:06 LuitaryiJack 阅读(227) 评论(0) 推荐(1)
摘要:思路:点分治 提交:1次 题解: 不需要什么容斥。。。接着板子题说: 还是基本思路:对于一颗子树,与之前的子树做贡献。 我们把路径的权值在$\%3$意义下分类,即开三个桶$c[0],c[1],c[2]$,分别记录每一类的路径条数。合并的时候显然有: $$c[0]\cdot mem[0]\cdot 2 阅读全文
posted @ 2019-08-31 09:05 LuitaryiJack 阅读(110) 评论(0) 推荐(1)
摘要:思路:点分治 提交:1次 题解: 要求权值和$\leq K$ 的路径,我们可以类比 "点分治的模板" ,把长为$len$是否存在,改为$len$的路径的条数,并用用树状数组维护前缀和,这样就可以求出答案。 代码: cpp include define R register int using nam 阅读全文
posted @ 2019-08-31 09:04 LuitaryiJack 阅读(119) 评论(0) 推荐(1)
摘要:思路:线段树+转化 提交:2次 错因:由于智障没有判断左右端点ORZ 题解: 主要是如何把区间除下取整转化成更适合线段树的一些操作。 给定除数 $d$ ,对于一段区间,若区间只包含 $k d$ 与 $k d 1$ ,我们可以转化成区间减,因为此时做完除法,新的数与原数的差相等,即 $$k d (k 阅读全文
posted @ 2019-08-30 23:18 LuitaryiJack 阅读(214) 评论(0) 推荐(1)
摘要:基本思路:点分治,是一种针对 可带权树上简单路径统计问题 的算法。对于一个节点,只解决经过这棵子树的根节点的路径,对于子节点问题下推子树。 补一下点分治的一些题: "Luogu P4178 Tree" "Luogu P2634 [国家集训队]聪聪可可" "Luogu P2993 [FJOI2014] 阅读全文
posted @ 2019-08-29 20:16 LuitaryiJack 阅读(251) 评论(0) 推荐(1)
摘要:思路:$BSGS$ 提交:$1$次 题解: 原式可以化为$$x_{i+1}+\frac{b}{a 1}=a(x_{i}+\frac{b}{a 1})\mod p$$ 这不是等比数列吗? $$x_{n}+\frac{b}{a 1}=a^{n 1}\cdot (x_{1}+\frac{b}{a 1})\ 阅读全文
posted @ 2019-08-24 14:44 LuitaryiJack 阅读(238) 评论(0) 推荐(1)
摘要:思路:杜教筛 提交:$2$次 错因:$sum$函数处取模出错 题解: 首先第一问是智商检测题:$\sum_{i=1}^n \mu(i^2)$显然为$1$ 第二问其实是跟杜教筛板子那篇里面说的似的: $f=\varphi(i^2)=\varphi(i)\cdot i$ $S(n)=\sum_{i=1} 阅读全文
posted @ 2019-08-24 14:17 LuitaryiJack 阅读(163) 评论(0) 推荐(1)
摘要:思路:杜教筛 提交:$2$次 错因:$\varphi(i)$的前缀和用$int$存的 题解: 对于一类筛积性函数前缀和的问题,杜教筛可以以低于线性的时间复杂度来解决问题。 先要构造$h=f g$,并且$h$的前缀和易求,$g$的区间和易求。 具体地: $$\sum_{i=1}^{n}h(i)=\su 阅读全文
posted @ 2019-08-23 23:36 LuitaryiJack 阅读(153) 评论(0) 推荐(1)
摘要:思路:$exgcd$ 提交:$2$次 错因:输出格式错误OTZ 题解: 求:$r^2 ≡ x \mod N , 0 \leq r include include include define ll long long define rr register ll define R register i 阅读全文
posted @ 2019-08-23 19:00 LuitaryiJack 阅读(123) 评论(0) 推荐(1)
摘要:思路:$DP$ 提交:$2$次 错因:高精写挂(窝太菜了) 题解: 观察可知$f[i]=2 f[i 1]+(n\&1)$ 高精的过程参考了 "WinXP@luogu" 的思路: 发现一个问题。每一项约等于前一项的 $2$ 倍。仔细分析,发现 $dp(n)=2dp(n 1)+ (n\& 1)?1:0$ 阅读全文
posted @ 2019-08-23 18:30 LuitaryiJack 阅读(154) 评论(0) 推荐(1)
摘要:思路:扩展欧拉定理 提交:$\geq5$次 错因:快速幂时刚开始没有判断$a$是否大于$p$ 题解: 用树状数组维护差分,查询时暴力从左端点的第一个数向右端点递归,若递归时发现指数变为$1$,则指数返回$1$;若递归出右端点,指数也返回$1$; cpp pragma GCC optimize (3) 阅读全文
posted @ 2019-08-23 17:40 LuitaryiJack 阅读(275) 评论(0) 推荐(1)

上一页 1 2 3 4 5 6 7 8 ··· 16 下一页