随笔分类 -  杂算法

摘要:【前置知识】 convex 与 concave:这是对于数组的概念。类比函数,下凸就是 convex,上凸就是 concave。 【<min,+>卷积问题】 考虑两个数组 a1n,b1m,定义它们的<min,+>卷积结果 c|c|=n+m阅读全文
posted @ 2024-10-03 20:31 FLY_lai 阅读(256) 评论(0) 推荐(0) 编辑
摘要:打的算不错的了。就是 C 的部分分没时间打满了。 警示:调试的时候切忌过分相信自己的某一部分代码!!!请把任何一个函数都注释一遍检查错误源头。 T1 签到题。记录 pfx[],suf[] 表示从前往后尽量少走、从后往前尽量多走,会走到哪里。 然后枚举 i=0m,看 \(pf 阅读全文
posted @ 2024-09-24 16:28 FLY_lai 阅读(30) 评论(0) 推荐(0) 编辑
摘要:给定 n 个数的序列,一次操作可以使某个数 ±1。问最少多少次使得序列 gcd>1。 容易发现 n 次操作必定能使所有数都变成偶数,所以最优操作次数 n。 所以操作次数 1 的数 n/2 个。随机取 30 阅读全文
posted @ 2024-09-15 12:43 FLY_lai 阅读(12) 评论(0) 推荐(0) 编辑
摘要:记 f 为任意最大流,令 Gff 的残量网络。记 Gfs 可达的点集合为 St 可达的点集合为 T。 判断一个图的最小割是否唯一。最小割唯一 ST=V。 若 (u,uC) 阅读全文
posted @ 2024-05-04 19:17 FLY_lai 阅读(15) 评论(0) 推荐(0) 编辑
摘要:题意:给定带边权的树,要切掉 k 条边,再任意连上 k 条边权为 0 的边。问最优策略下得到的树的边权最大值。n,k3×105。 参考 【问题转化】 切掉 k 条边后会变成 k+1 个连通块,之后的连边一定会把这 k+1 阅读全文
posted @ 2024-04-14 22:25 FLY_lai 阅读(46) 评论(0) 推荐(0) 编辑
摘要:一个参考 WQS 二分用来处理一些答案构成凸函数的问题。 最经典、最常见的形式,就是 "从若干个物品中恰好选给定个数的最优" 型问题。 适用要求:如果不考虑选的物品的个数限制,可以很快求出答案。 最经典例题:P2619 Tree I 从所有白边中选 need 条,然后加上若干条黑边形成生成树 阅读全文
posted @ 2024-04-12 19:01 FLY_lai 阅读(220) 评论(0) 推荐(0) 编辑
摘要:模拟费用流,顾名思义,就是直接跑费用流会超时,于是尝试用数据结构模拟费用流的过程。 在某些题里,模拟费用流就是 "反悔贪心"。 标一下 command_block 的博客 LOJ574:黄金矿工 LOJ6405:征服世界 UOJ455:雪灾与外卖 P6122:Mole Tunnels 【普通模型】 阅读全文
posted @ 2024-03-22 20:30 FLY_lai 阅读(55) 评论(0) 推荐(0) 编辑
摘要:传送门 题意:给定一个 01 矩阵,每次可以交换两行或交换两列,要使最终每行每列都有一个 1,是否可行? 如果 ai,j=1,则第 i 行和第 j 列连边。每行每列都有一个 1,相当于匹配数为 n。 交换某行某列,对图的结构没有本质影响,所以对一 阅读全文
posted @ 2024-03-02 17:04 FLY_lai 阅读(7) 评论(0) 推荐(0) 编辑
摘要:传送门 这玩意是 T2 ??? 观察到 k=2n2k=2n1,所以我们可以尝试让每个栈里面都保持两张牌。同时保留一个空栈,用来消栈底。 记这个保留的空栈为 sp。 策略 1: 如果当前牌堆顶的牌能消,必然消; 否则除了 sp,如果存在一个没有填到两张牌的栈, 阅读全文
posted @ 2024-03-02 16:56 FLY_lai 阅读(8) 评论(0) 推荐(0) 编辑
摘要:参考(先看) 这个题解最后的式子写错了,看最后 (注意一下算层数要 n /= 2 !) 这里面关于 ans 的用法:为什么是 2×ans2+8×ans+10 已经讲得很清楚了。 主要补充一下怎么求 ans 的部分。 如图,三个决策点的所在部分可以视作 阅读全文
posted @ 2024-03-02 16:54 FLY_lai 阅读(12) 评论(0) 推荐(0) 编辑
摘要:传送门 有 n 种货币。找一个最小的金额 x,使得贪心法付款不是最优解;如果贪心法始终都是最优解,输出 1(n400) 将货币集合记作一个 n 维向量 C=(c1,c2,,cn)。对于金额 x 的一个表示法,也记作一 阅读全文
posted @ 2024-03-02 16:44 FLY_lai 阅读(8) 评论(0) 推荐(0) 编辑
摘要:如果发现自己莫名其妙错了,可能是代码 UB,还开 O2!!!!!!!!!!! 传送门 首先,对于每个操作 2,将 ui,vi 连边。连边之后每个连通块内部可以在总和不变的情况下任意改变。 用并查集将每个连通块缩点,然后对于每个操作 1,将 ui,vi 连边。得到的图又会分成若 阅读全文
posted @ 2024-03-01 09:15 FLY_lai 阅读(6) 评论(0) 推荐(0) 编辑
摘要:只做了 A,成功被 sb 错误卡住。 A 每次挑最右边的左移。 B 每次一定是优先向最近的怪物打,打完一个打下一个最近的。 子弹不一定只能打两个怪物,所以打的时候用循环判断子弹是否打完。 C l = r 不行 否则考虑全 1 再把所有 ci=1 的都 +1,这需要 \(cnt1[r]-cn 阅读全文
posted @ 2024-02-24 08:59 FLY_lai 阅读(36) 评论(0) 推荐(0) 编辑
摘要:【根号分治】 例题:等差数列加 给定一个长度 n 的数列,初始全都是 0。(n2×105) 要求支持两种操作: 1xyd,表示把所有下标模 x 等于 y 的位置全部加上 d2x,表示查询 \(a_x\ 阅读全文
posted @ 2024-02-19 11:01 FLY_lai 阅读(25) 评论(0) 推荐(0) 编辑
摘要:自己做不出来,看现在题解区的题解讲的都不咋清楚。懂了之后来为后人铺路。而且我的马蜂比较好看 题目传送门 我能看懂这道题,主要是依靠了这篇题解的帮助。 首先我们只关注数的相对关系,所以可以离散化。注意到值域 106,用数组离散化。 这道题可以用贪心做。(有一些定义先往下看) 定义一个无缝子序 阅读全文
posted @ 2024-02-19 11:00 FLY_lai 阅读(11) 评论(0) 推荐(0) 编辑
摘要:传送门 注意题目保证新加入的区间长度一定最大,想一想,这是保证了新区间不会被包含。 区间关系有三种:如果两个区间相交,则两个区间互相可达;如果是包含关系,小的能到大的;如果相离,都不能到。 显然当区间 ab 相互可达,bc 相互可达,则 a,b,c 阅读全文
posted @ 2024-02-19 10:59 FLY_lai 阅读(17) 评论(0) 推荐(0) 编辑
摘要:传送门 先将括号序列建树。 具体而言,假设当前根结点为 rt,当前括号序列为 s。若 s 能分成 cnt 组括号,则 rtcnt 个儿子。对于第 i 个儿子,以它为新根结点,第 i 组括号为新括号序列,递归建树。 例如 (()() 阅读全文
posted @ 2024-02-19 10:58 FLY_lai 阅读(13) 评论(0) 推荐(0) 编辑
摘要:传送门 题意;找出最浅的点分树。 发现这是一个等价问题:给每个结点一个标号,当两个结点标号相同时,它们的路径上必有严格更小的标号。如果找到了这样一种标号方法,每个结点的标号就是它的深度。 同时我们还可以把每个结点的标号 x 对应到 n+1x,也是一一对应。问题又变成路径上必有严格更 阅读全文
posted @ 2024-02-19 10:57 FLY_lai 阅读(5) 评论(0) 推荐(1) 编辑
摘要:A 最大值 - 最小值 B 题意:在 n×n 的方阵中选择若干个方块,使得至少有 k 条对角线上有选择的方块。 观察:如果选择第一行的 n 个,和最后一行的中间 n2 个,可以覆盖 4n4 条对角线,这其中每一个格子都恰好覆盖两条对角线。 所以 阅读全文
posted @ 2024-02-16 11:38 FLY_lai 阅读(9) 评论(0) 推荐(0) 编辑
摘要:S1 题解 S2 显然最少次数就是叶子个数 l。那么 pl+1pn 都不会用到。 对于 p1pl,我们要尽量让它们放在路径上。 枚举每一条根到叶子的路径,选择路径上深度最低的 p 与这条路径匹配(没有就不匹配了)。 用树剖即可。 S3 阅读全文
posted @ 2024-02-16 09:40 FLY_lai 阅读(46) 评论(0) 推荐(0) 编辑

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