03 2024 档案

摘要:C 题意:给定 n 个数 d1dn,求是否存在一个数 s 使得 1(di+s)mod(a+b)a。 显然可以每个数先模 a+b,然后排序。 结论:存在当且仅当存在一个数 i 使得 \((d_{i+1}-d_i)\b 阅读全文
posted @ 2024-03-31 11:03 FLY_lai 阅读(21) 评论(0) 推荐(0) 编辑
摘要:传送门 题意:有 n 个队友和 m 个敌人,每个队友 iai 颗子弹。敌人 jbj 颗子弹。 队友击杀敌人,必须 ai>bj,然后会获得 aibj+wj 的收益。(wj: 每个敌人都有一个参数) 每 阅读全文
posted @ 2024-03-31 10:43 FLY_lai 阅读(66) 评论(0) 推荐(1) 编辑
摘要:【可持久化】 可持久化可以应用于查询历史版本的问题,关键在于给每个版本之间共用顶点,减小空间代价。 所以可持久化永远不会修改结点,只会新建结点。 可持久化不止应用于 "历史版本" 问题,有时题目并没有给出什么历史版本的描述,但是不同的线段树之间变化很小,也可以可持久化。 【模板】可持久化线段树 2 阅读全文
posted @ 2024-03-31 09:44 FLY_lai 阅读(11) 评论(0) 推荐(0) 编辑
摘要:传送门 NOI 的题果然是非常的难且有意思。还有就是推荐一下command_block 的题解。 这题的题意比较难。 题意:有 n 种菜,初始每种菜有 ci 个,单价 ai,如果不出售每天会变质 xi 棵。第一次卖这种菜会获得 si 的奖励。每天至多卖 阅读全文
posted @ 2024-03-30 10:17 FLY_lai 阅读(34) 评论(0) 推荐(0) 编辑
摘要:传送门 题意:已知未来 n 天的股价 ci,每天可以买入一支或者卖出一支,求 n 天后利润总额最大是多少。 算法:模拟费用流。 【费用流模型】 把每一天抽象为一个结点:d1dnSd1dn,容量 \(1\ 阅读全文
posted @ 2024-03-29 20:17 FLY_lai 阅读(16) 评论(0) 推荐(0) 编辑
摘要:P1484 种树 有 n 个坑。第 i 个坑种树的价值是 ci,相邻坑不能同时种。可以种 k 颗树,求最大价值。 模拟费用流,建图类似这样: 中间两层结点之间有 7 条边,表示 n=7 的情况。相邻两条边,例如 1,2 总流入量为 1 阅读全文
posted @ 2024-03-29 19:15 FLY_lai 阅读(23) 评论(0) 推荐(0) 编辑
摘要:P5470:NOI2019 序列 题意:给定两个长度 n 的序列 a,b。 要求各选出 k 个数,使得这 2k 个数之和最大,且两个序列选出的数至少有 l 个位置相同。 n2×105。 算法:模拟费用流。 【费用流模型】 关键点在 阅读全文
posted @ 2024-03-27 22:13 FLY_lai 阅读(30) 评论(0) 推荐(0) 编辑
摘要:模拟费用流。 传送门 题意:共 n=x+y+z 个人,每个人可以选择获得 ai 个金币或 bi 个银币或 ci 个铜币。要选 x 个人拿金币,y 个人拿银币,z 个人拿铜币。问币数总和最大是多少。n105。 先建出费用流 阅读全文
posted @ 2024-03-25 21:37 FLY_lai 阅读(27) 评论(0) 推荐(0) 编辑
摘要:算法:线段树维护,模拟费用流。 传送门 你需要生产 k 张光盘。每张光盘都要经过两道工序:先在 A 工厂进行挤压,再送到 B 工厂涂上反光层。 你知道每天 A、B 工厂分别加工一张光盘的花费。你现在有 n 天时间,每天可以先送一张光盘到 A 工厂(或者不送),然后再送一张已经在 A 阅读全文
posted @ 2024-03-25 21:36 FLY_lai 阅读(18) 评论(0) 推荐(0) 编辑
摘要:Silver A 先用随便一个优先队列求出最短时间(怎么分配面试官对总时间没影响)。 赛时的想法是用并查集维护所有曾同时间结束的面试官,但是是错的。 Hack:若面试官 a 与面试官 b 同时结束,之后 b 又与 c 同时结束。用并查集会认为 a,b,c 都是 阅读全文
posted @ 2024-03-24 21:24 FLY_lai 阅读(18) 评论(0) 推荐(0) 编辑
摘要:KM 算法用来处理最大权完美匹配。 【定义】 记 G 的左部点为 xi,右部点为 yi。 顶标:我们给每个结点一个整数标号 li。 可行顶标:如果对于 (xi,yi),\(l_{x_i}+l_{y_i}-w_{x_i,y_i}\ge 阅读全文
posted @ 2024-03-24 10:10 FLY_lai 阅读(85) 评论(0) 推荐(0) 编辑
摘要:当 n0(x+y)n=k=0n(kn)xkynk。 当 n<0(x+y)n=k=0+(kn)xkynk。 这两个式子只差在枚 阅读全文
posted @ 2024-03-23 09:15 FLY_lai 阅读(132) 评论(0) 推荐(0) 编辑
摘要:生成函数(generating function,简称 GF),一般只应用两种:OGF 和 EGF。 OGF 和 EGF 都是定义在一个数列上的。 【一些前置知识】 二项式卷积:cn=i=0(in)aibni。 \(\exp(A(x))=\sum_{i\ge 0 阅读全文
posted @ 2024-03-23 08:59 FLY_lai 阅读(90) 评论(0) 推荐(1) 编辑
摘要:模拟费用流,顾名思义,就是直接跑费用流会超时,于是尝试用数据结构模拟费用流的过程。 在某些题里,模拟费用流就是 "反悔贪心"。 标一下 command_block 的博客 LOJ574:黄金矿工 LOJ6405:征服世界 UOJ455:雪灾与外卖 P6122:Mole Tunnels 【普通模型】 阅读全文
posted @ 2024-03-22 20:30 FLY_lai 阅读(55) 评论(0) 推荐(0) 编辑
摘要:模板题 动态添加线段,求某个 x 对应的 y 最大是多少,且对应哪条直线。 因为 x 比较小,考虑在 x 轴上建立线段树。把每个线段写成 y=kx+b 的解析式形式并求出它的定义域 [l,r],每条线段就可以看作是一个应用在 [l,r] 上的区 阅读全文
posted @ 2024-03-20 21:41 FLY_lai 阅读(31) 评论(1) 推荐(0) 编辑
摘要:传送门 题意: 在一所学校里有 n 名学生和 m 个社团,社团被编号为 1~m 。第 i 个学生有一个能力值 pi ,且属于社团 ci(每个学生恰好属于一个社团)。 学校将要举行一个为期 d 天的活动,每天学校要举行一场程序设计比赛 阅读全文
posted @ 2024-03-19 20:37 FLY_lai 阅读(13) 评论(0) 推荐(0) 编辑
摘要:A 题意:给定完全图,可以删掉 k 条边。问 1 号点所在连通块的大小最小是多少。 显然要么 1 要么 n。 B 题意:给定长为 2n 的数组,从 a1an 中和 an+1a2n 中分别选 2k 个数 阅读全文
posted @ 2024-03-18 22:25 FLY_lai 阅读(11) 评论(0) 推荐(0) 编辑
摘要:题意:有 K 个城市,第 i 城市至多有 N[i] 个人,每个城市有一个属性 Q[i]。 对于 N=N[i] 个人,每个人有一个属性 P[i] 和价值 W[i],把第 i 个人放进第 j 个城市中,当且仅当 \(P[i 阅读全文
posted @ 2024-03-18 21:12 FLY_lai 阅读(14) 评论(0) 推荐(0) 编辑
摘要:传送门 题意:有 n 个勇者和 m 个怪物,第 i 个勇者有一个可杀怪物集合 Mi,每个勇者只能杀各自 Mi 中的一个怪物。 但是你有 k 瓶魔药,每一瓶都可以让一个勇者多杀一个 Mi 中的怪物。但是每个勇者只能吃一瓶药。问最多能杀多少个 阅读全文
posted @ 2024-03-18 18:48 FLY_lai 阅读(9) 评论(0) 推荐(0) 编辑
摘要:传送门 题意:给定一张字符地图,# 代表墙,. 代表空地,D 代表门。初始每个空地都有一个人。 每个人可以在一秒内向上下左右移动一格。一个空地可以站任意多人。一个人走到门视作逃生成功。但是门很窄,一个时刻内只能有一个人进门。 问所有人逃生的最短时间。n12。 注意到门一个时刻只能进一 阅读全文
posted @ 2024-03-18 18:33 FLY_lai 阅读(8) 评论(0) 推荐(0) 编辑
摘要:A 题意:定义一个字符是特殊的,当且仅当它左右两边恰有一个字符与之相同。要求构造一个字符串,使得恰好有 n 个特殊字符,或判断无解。 考虑一个连续的字符段,如果长度 1,不贡献特殊字符;否则必然贡献 2 个。所以无解条件就是 2n。 否则可以用 AA 阅读全文
posted @ 2024-03-17 20:14 FLY_lai 阅读(8) 评论(0) 推荐(0) 编辑
摘要:【定义】 向量:每个向量由若干个标量(数)组成,每个标量都来自同一个域 F。若一个向量包含 k 个标量,称其为 k 维向量。 向量空间 V:由若干个向量组成。需要满足以下条件: V 中的向量满足加法交换律和加法结合律。 V 中存在 0 向量,\ 阅读全文
posted @ 2024-03-16 09:57 FLY_lai 阅读(28) 评论(0) 推荐(0) 编辑
摘要:传送门 障碍物可以视为第 i 行放在第 i 列,因为保证每行每列障碍物有且仅有一个。 问题就变成了:求 {a} 满足 aii,错排问题,用高精度递推。 没写 阅读全文
posted @ 2024-03-15 19:02 FLY_lai 阅读(6) 评论(0) 推荐(0) 编辑
摘要:传送门 性质一:若 m1N 中最大的反质数,则 m1N 中因数个数最大的数中最小的那个。 阅读全文
posted @ 2024-03-14 22:44 FLY_lai 阅读(9) 评论(0) 推荐(0) 编辑
摘要:传送门 当然有 O(nlogn) 的做法:主席树等等。 但是这题还可以用一种更暴力的方法:直接开线段树,每个结点保存的信息是对应区间的所有数从小到大排序后的结果。 pushup 就是对左右儿子归并排序。 查询就在数组上二分即可。 时间复杂度 O(nlog2n),空间复杂度 \ 阅读全文
posted @ 2024-03-12 18:23 FLY_lai 阅读(25) 评论(0) 推荐(0) 编辑
摘要:传送门 很巧妙的转化。 给每个结点染色(标号),如果一条边两端同色,是重边;否则为轻边。 初始让每个结点分别设一个超级大的颜色。 每次修改,等价于把路径上的点修改为一个没有出现过的颜色。 用树剖维护即可。 阅读全文
posted @ 2024-03-11 18:20 FLY_lai 阅读(5) 评论(0) 推荐(0) 编辑
摘要:D 给定一张图,分为左右各 P 个点,左右各自内部是一个完全图,左右之间有 m 条边。求这个图的最大团。P20,mP2。 对于每个右部点,求出一个长度为 20 的二进制数,第 i 位是 1 表示它与左部第 i 点有连边。 枚举 阅读全文
posted @ 2024-03-10 16:23 FLY_lai 阅读(9) 评论(0) 推荐(0) 编辑
摘要:Hall's 定理:二分图 (X,Y,E) 有大小为 |X| 的匹配 对于 AX|N(A)||A|。(N(A) 表示 A 的邻域) Konig 定理:二分图最小点覆盖 = 最大匹配。 阅读全文
posted @ 2024-03-10 16:15 FLY_lai 阅读(31) 评论(0) 推荐(0) 编辑
摘要:传送门 我觉得这题最有意思的其实是 "最终会固定为一个数" 这个结论。 扩展欧拉定理:abmodp,当 bφ(p) 时,ababmodφ(p)+φ(p)(modp)。 所以 \(2^{2^{ 阅读全文
posted @ 2024-03-09 10:40 FLY_lai 阅读(6) 评论(0) 推荐(0) 编辑
摘要:传送门 显然每一只龙对应了唯一的一把剑。用 multiset 可以求出每一把剑。于是题目就变成了: \[\begin{cases}b_1x\equiv a_1\pmod {m_1}\b_2x\equiv a_2\pmod{m_2}\\dots\b_nx\equiv a_n\pmod{m_n}\ 阅读全文
posted @ 2024-03-09 10:09 FLY_lai 阅读(18) 评论(0) 推荐(0) 编辑
摘要:传送门 求 Gd|nCndmod999911659n,G109。 费马小定理:即求 Gd|nCndmod999911658mod999911659。 而 \(\sum_{d|n}C_n^d\bmod 阅读全文
posted @ 2024-03-08 19:15 FLY_lai 阅读(7) 评论(0) 推荐(0) 编辑
摘要:传送门 看一个人什么时候出圈没有用。先求一个数组 id[i] 表示第 i 个出圈的是谁。 考虑第 i 个出圈的人,应该是从 id[i1]+1 开始绕了若干圈,最后从 id[i1]+1 走到 id[i] 的。 也就是 \(K\equiv dist(i 阅读全文
posted @ 2024-03-06 22:42 FLY_lai 阅读(11) 评论(0) 推荐(0) 编辑
摘要:普通的 CRT 只能处理模数两两互质的情况,而 EXCRT 可以求得任意情况下同余方程组的通解。 思想:把两个同余方程合并成一个,直到剩下一个。 考虑两个同余方程 xp1(modm1),xp2(modm2)。 则 \(x=p_1+m_1A=p_ 阅读全文
posted @ 2024-03-06 22:37 FLY_lai 阅读(23) 评论(0) 推荐(0) 编辑
摘要:传送门 洛谷传送门 朴素想法是每个 1 都向左不断找 d 个,找到 0 所需次数就是这个 1 变成 0 的时间。(如果找不到说明无解) 可以从每个 0 出发 BFS 一次,优化。 阅读全文
posted @ 2024-03-05 20:43 FLY_lai 阅读(5) 评论(0) 推荐(0) 编辑
摘要:传送门 题意:给定长度 n 数组 {a} 和整数 b,m,求数组 x 满足 ai×xib(modm)。 可以写成 a1x1+a2x2++mp=b。判断无解:\(gcd(a_1,a_2,\d 阅读全文
posted @ 2024-03-05 19:28 FLY_lai 阅读(19) 评论(0) 推荐(0) 编辑
摘要:传送门 题意:给出两个互质的正整数 a,b。求出最大的不能被表示为 ax+byx,y0 的数。 结论:答案为 abab。 证明:不妨 a<b。设 k 为答案。则 k+a 肯定能被表示。(k 最大) \(k+a=ax+b 阅读全文
posted @ 2024-03-04 20:55 FLY_lai 阅读(10) 评论(0) 推荐(0) 编辑
摘要:传送门 题意:找到两个 gcd 最大的数。n2e5,ai1e6。 一种方法是枚举 i:1nO(ai)ai 因数的出现次数加一。 然后 i:10000001,如果 cnt[i]>1,输 阅读全文
posted @ 2024-03-04 20:51 FLY_lai 阅读(34) 评论(0) 推荐(0) 编辑
摘要:传送门 题意:问 n 有多少种方式,能表示为若干个连续质数之和。 简单题。用线性筛筛出 010000 内的质数,预处理出每一个数的方案数即可。 阅读全文
posted @ 2024-03-04 20:06 FLY_lai 阅读(18) 评论(0) 推荐(0) 编辑
摘要:A 用快速幂。 pair<ldb, ll> fpow(ldb a, int k) { ll A = 0, R = 0; while (a >= 10) { a /= 10; A++; } ldb r = 1.0; while (k) { if (k&1) { r = r * a; R += A; w 阅读全文
posted @ 2024-03-04 18:50 FLY_lai 阅读(12) 评论(0) 推荐(0) 编辑
摘要:妙题。 要求线段不相交,即要求连线长度总和最小。 黑点向白点连边,容量 1,费用为它俩的距离。s 向黑点/白点向 t 连边,容量 1 费用 0。跑最小费用最大流。 然后检查每个黑点是哪个边流了即可。 注意这里一定不能偷懒不开根号!否则原本 \(e1.cst<e 阅读全文
posted @ 2024-03-03 20:10 FLY_lai 阅读(4) 评论(0) 推荐(0) 编辑
摘要:传送门 题意:给定一个 01 矩阵,每次可以交换两行或交换两列,要使最终每行每列都有一个 1,是否可行? 如果 ai,j=1,则第 i 行和第 j 列连边。每行每列都有一个 1,相当于匹配数为 n。 交换某行某列,对图的结构没有本质影响,所以对一 阅读全文
posted @ 2024-03-02 17:04 FLY_lai 阅读(7) 评论(0) 推荐(0) 编辑
摘要:传送门 平衡树优化神题,完全想不到平衡树能这么用! 一看这题散发着一股 DP 的清香。 dp[i][j] 表示前 i 个数且第 i 个数为 j 的最长上升子序列长度。但是转移方程不好优化,状态表示可以滚动数组压掉一维。 反方向考虑 DP:dp[i][j] 表示 阅读全文
posted @ 2024-03-02 16:57 FLY_lai 阅读(15) 评论(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) 编辑
摘要:传送门 定义一个字符串 S 的缩字符串 S:S 中所有连续的相同字符变成 1 个。 发现通过复制操作,若 A 能变成 B,则 B 一定是 A 的子序列;反之,如果 BA 的子序列,A 能复制 阅读全文
posted @ 2024-03-02 16:53 FLY_lai 阅读(2355) 评论(0) 推荐(0) 编辑
摘要:T4 写出转移方程:fi 表示前 i 天且第 i 天必须跑的最大能量值。gi=maxj=1i{fj}。初值 f0=g0=0。 对于转移方程,考虑枚举最后一段跑的段是从哪里开始的:\(f_i=\displaystyle\ma 阅读全文
posted @ 2024-03-02 16:52 FLY_lai 阅读(37) 评论(0) 推荐(0) 编辑
摘要:传送门 题意:初始有 n0,给定一个序列 a,每次可以选择一个长度为某个 ai 的区间,将其全部取反。再给定一个序列 x,要求最后的状态是只有 x 中的位置是 1。问最小步数/判断无解。 范围:\(n\le 10000,|a|=l\le 阅读全文
posted @ 2024-03-02 16:46 FLY_lai 阅读(11) 评论(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) 编辑

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