08 2020 档案

摘要:题目戳我 \(\text{Solution:}\) 考虑点分治。对于这个两点之间,它意味着这点对必须是不一样的。 考虑用双指针统计答案。显然,对于两个数$a,b$,要让$a+b=k,a$越大则$b$越小。于是可以用双指针统计答案。 剩下的就是一个点分治板子。 GrNB!!! #include<bit 阅读全文
posted @ 2020-08-22 23:35 Refined_heart 阅读(106) 评论(0) 推荐(0) 编辑
摘要:A 选择一个点$B(x,0)\(使得\)|dis(A,B)-x|=k.$ 题目实际上就是找到一个最接近$n$的数,使得它可以分成两个数$a,b,$使$a-b=k.$ 我们考虑先分成一个可能的最小的数:$0+k.\(这时两边\)+2$就可以保证一定可以分成两个数$a,b$使得$a-b=k.$ 那么我们 阅读全文
posted @ 2020-08-22 10:36 Refined_heart 阅读(90) 评论(0) 推荐(0) 编辑
摘要:题目戳我 \(\text{Solution:}\) 显然题目所求和“大规模处理树上路径问题”这一特点相符。考虑点分治。 由于题目只要求对于$3$的倍数,所以我们可以分别记录$tmp[i]$表示到当前点路径长度为$i$的路径数目。\(i\in \text{{0,1,2}}\) 若我们知道了这三个量,则 阅读全文
posted @ 2020-08-21 12:39 Refined_heart 阅读(101) 评论(0) 推荐(0) 编辑
摘要:题目戳我 \(\text{Solution:}\) 显然是一个类似于二分图,实际上却有三部分的图的“最大匹配”。 显然,我们可以想到书向练习册,练习册向答案的建图方式。但这样显然是错的。因为每册练习册被用到了多次。 鉴于题目中给出的是书向某物的关系,我们就让书当作图中最中间的一排点。即 练习册$\t 阅读全文
posted @ 2020-08-19 23:31 Refined_heart 阅读(140) 评论(0) 推荐(0) 编辑
摘要:Problem is here \(\text{Solution:}\) 首先,一眼看出这是最小割,只要叶子节点对汇点$T$连接流量为$inf$的边就可以一遍最大流搞定了。 剩下的问题在于,如何判断边的方向。 可以用$dfs$实现,方向由源点$S\to T.$而边权,注意到我们连的边是双向边,且编号 阅读全文
posted @ 2020-08-16 12:27 Refined_heart 阅读(105) 评论(0) 推荐(0) 编辑
摘要:求: \(G(x)\equiv \ln F(x)(\bmod x^n)\) 解: 令$f(x)=\ln x$ \(G(x)\equiv f(F(x))(\bmod x^n)\) 两边求导: \(G'(x)\equiv \frac{F'(x)}{F(x)}(\bmod x^n)\) 所以,对$F$求一 阅读全文
posted @ 2020-08-14 19:52 Refined_heart 阅读(213) 评论(0) 推荐(0) 编辑
摘要:第一道$AC$自动机$+DP.$ 首先,一个自动机上$DP$的套路是设$dp[i][j]$表示长度为$i$匹配到$j$节点的最优得分。 那么,由于我们已经建好了$Trie$图,我们就应该提前把走到节点$j$的所有连击操作处理出来。 有一条显然结论:如果在$fail$树上经过了这个串结尾节点中子树中的 阅读全文
posted @ 2020-08-14 16:56 Refined_heart 阅读(115) 评论(0) 推荐(0) 编辑
摘要:阿狸的打字机 \(\text{Solution:}\) 首先观察三种操作:一种是插入一个字符,一种是退回上一步(回到父亲节点)。 所以,我们可以对操作串进行模拟,并处理出每一个串在树上的位置。 接下来,我们考虑如何处理询问。$y$是需要跑的串,于是我们应按照$y$排序以保证在处理这个$y$之前,它本 阅读全文
posted @ 2020-08-14 15:55 Refined_heart 阅读(114) 评论(0) 推荐(0) 编辑
摘要:若有复杂度递推式: \(T(n)=aT(\frac{n}{b})+f(n)\) 则: $1.f(n)=O(n^{\log_b a-\delta}),T(n)=O(n^{\log_b a})$ $2.f(n)=O(n^{\log_b a+\delta}),T(n)=O(f(n))$ $3.f(n)=O 阅读全文
posted @ 2020-08-14 07:57 Refined_heart 阅读(123) 评论(0) 推荐(0) 编辑
摘要:求: \(A(x)B(x)\equiv 1(\bmod x^n).\) 解: 若已知$A(x)B'(x)\equiv 1(\bmod x^\frac{2}):$ \(A(x)B(x)\equiv 1(\bmod x^\frac{n}{2})\) 同时减去: \(B(x)-B'(x)\equiv 0( 阅读全文
posted @ 2020-08-13 16:58 Refined_heart 阅读(183) 评论(0) 推荐(0) 编辑
摘要:题面戳我 \(\text{Solution:}\) \(\sum_{d=1}^nd^k\sum_{i=1}^\frac{n}{d}\sum_{j=1}^\frac{n}{d}[\gcd(i,j)=1]\) \(=\sum_{d=1}^n d^k\sum_{x=1}^\frac{n}{d}\mu(x) 阅读全文
posted @ 2020-08-12 20:22 Refined_heart 阅读(85) 评论(0) 推荐(0) 编辑
摘要:Link \(\text{Solution:}\) 蒟蒻做完这题深知不写清楚$dp$转移方程的痛…… 首先,显然我们可以设$dp[i][j]$表示第$i$天,拥有$j$股股票的最优解。于是,对于每一天,我们可以: 不进行交易 于是直接$dp[i][j]=\max(dp[i-1][j],dp[i][j 阅读全文
posted @ 2020-08-11 15:31 Refined_heart 阅读(140) 评论(0) 推荐(0) 编辑
摘要:题目戳我 \(\text{Solution:}\) 显然思路,把所有羊看成一个源点,所有狼看成一个汇点,格子之间连容量为$1$的边,直接跑最小割。 技巧: 注意到篱笆不能把羊给割掉,狼同理。所以,我们可以建立一个超级源点$S$向所有羊连一条容量为$inf$的边。这样,在最小割中就一定不会把这条边割掉 阅读全文
posted @ 2020-08-10 21:24 Refined_heart 阅读(126) 评论(0) 推荐(0) 编辑
摘要:Link \(\text{Solution:}\) 我们令源点和汇点分别为睡觉和不睡觉这两种互斥的决策点。把小朋友看成点,问题转化为最小割。 每一个小朋友对自己的意愿指向的汇点/源点。容量为$1.$之后要处理好朋友之间的关系。 让我们回到最小割的定义:求一组边,使它们割掉后,$S,T$不连通。 注意 阅读全文
posted @ 2020-08-10 19:59 Refined_heart 阅读(101) 评论(0) 推荐(0) 编辑
摘要:\(\color{red}{Link}\) \(\text{Solution:}\) 把人和床看成点,问题转化为二分图。 于是,对于每一个在校生,我们建立出他的床点;然后对于每一个在校生,他们自己可以和自己的床位连边。 对于其他人:每一个人都可以和他认识的人连边。当然,对于在校生不留下的人,可以省去 阅读全文
posted @ 2020-08-10 17:05 Refined_heart 阅读(89) 评论(0) 推荐(0) 编辑
摘要:\(\color{red}{Link}\) \(\text{Solution:}\) 观察到,如果一个时间$T$可以完成任务,则$T+1$这个时间也可以完成任务。 于是我们可以二分。 为了避免浮点数,我们可以让时间和血量都乘以$1000.$注意攻击力不需要增大,因为时间已经扩大了。 考虑如何网络流建 阅读全文
posted @ 2020-08-10 16:59 Refined_heart 阅读(111) 评论(0) 推荐(0) 编辑
摘要:\(Link\) \(\text{Solution:}\) 这一题,我们要做到,食物和牛、牛和饮料均为一对一的关系。我们发现这个图不好建立。 经典技巧:将牛拆边,拆成入点和出点,并连容量为$1$的边。 然后,从源点向食物连边,从食物向牛的入点连边,入点向出点连边,出点向饮料连边,饮料向汇点连边。容量 阅读全文
posted @ 2020-08-10 15:04 Refined_heart 阅读(83) 评论(0) 推荐(0) 编辑
摘要:用法:给定$n+1$个点$(x_i,y_i)$,求满足这些点的多项式$f(k)$处的值。 第一种思路显然暴力高斯消元,复杂度$O(n^3)$且带精度问题。 换一种思路,让我们来构造这个多项式。 拉格朗日插值公式:\(f(x)=\sum_{i=1}^ny_i\prod_{j\not=i}\frac{x 阅读全文
posted @ 2020-08-03 23:30 Refined_heart 阅读(499) 评论(0) 推荐(0) 编辑