08 2020 档案

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

点击右上角即可分享
微信分享提示