摘要: 云剪贴板。 阅读全文
posted @ 2025-02-09 16:28 wing_heart 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 模板。 阅读全文
posted @ 2024-11-26 17:06 wing_heart 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 不开 long long 见祖宗! 阅读全文
posted @ 2024-08-13 21:13 wing_heart 阅读(46) 评论(0) 推荐(0) 编辑
摘要: Remain loving. Keep dreaming. 阅读全文
posted @ 2025-03-03 13:03 wing_heart 阅读(35) 评论(0) 推荐(1) 编辑
摘要: 希望大家一直记得我。 “希望大家永远忘了我。” 阅读全文
posted @ 2025-03-03 12:33 wing_heart 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 题目描述了 AABB 两队比赛,先胜 nnn105n \le 10^5)局者胜,最多 2n12n - 1 局。玩家有 22n12^{2n - 1} 元,每轮可对 AABB 下注,赌赢赢双倍,输则赌注归零。有一种策略使 AA 赢玩家赚 22n12^{2n - 1} 元,BB 赢玩家亏 22n12^{2n - 1} 元。给定输赢局面,求每轮赌注。思路是设 gx,yg_{x,y}AAxx 局、BByy 局时下一局赌注,fx,yf_{x,y} 为此时赚到的钱,根据初始状态和转移方程简化得到 fx,yf_{x,y}gx,yg_{x,y} 表达式,通过推导得出通项公式。 阅读全文
posted @ 2025-02-28 09:22 wing_heart 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 给定长为 nnn2×105n \le 2 \times 10^5)的序列 {ai}\{ a_i \}qqq2×105q \le 2 \times 10^5)次询问 l,r,xl,r,xx,ai1013|x|,|a_i| \le 10^{13}),从 llrr 每个位置执行 xmax(x,aix)x \gets max(x,a_i - x) 求最终 xx。思路:操作是以 ai2\lfloor \frac{a_i}{2} \rfloor 对称,用《插入 - 标记 - 回收》算法,询问离线,扫描 aia_i 时遇 ljl_jxjx_j、遇 rjr_j 回收。用平衡树维护 xx 有序,记取负、加法 tagtag、交换左右儿子标记。按 ai2\lfloor \frac{a_i}{2} \rfloor 分裂树,改左树标记后合并,合并时裂树类似归并,复杂度 O(nlog2n)O(n\log^2 n)阅读全文
posted @ 2025-02-21 15:49 wing_heart 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 题目给定 nnn105n \le 10^5)个带颜色(颜色 {0,1,2}\in \{0,1,2\})的点,求包含三种颜色点的最小周长矩形。题解采用偏序问题做法,点关系有两种偏序:一是 x0<x1<x2y1<y2<y0x_0 < x_1 < x_2 \land y_1 < y_2 < y_0;二是 x0x1x2y0y1y2x_0 \le x_1 \le x_2 \land y_0 \le y_1 \le y_2。第二种拆成两个二维偏序,扫描 xx 维求解,复杂度 O(nlogn)O(n \log n)。第一种把两种颜色作数据、第三种作询问,扫描 xx 维,遇到数据修改线段树,遇到询问单点查询,线段树维护 00 的最小 x+y-x + y11 的最小 y-y 及两者最小和,保证标记时间戳顺序,复杂度也是 O(nlogn)O(n \log n)。代码多次调用求解函数并处理不同变换情况。 阅读全文
posted @ 2025-02-20 20:33 wing_heart 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 买 aabb 黑球,抽中白球概率 aa+b\frac{a}{a+b},期望抽 a+ba\frac{a+b}{a} 次(经求导证明,本题所需为 ba\frac{b}{a})。买 AA 个白球,贪心策略是用其他球凑 AA 模单价最低球个数 bb 的同余类,其余买此球。O(4003)O(400^3) 的 DP 求 400×400400 \times 400 内买球最少价钱并处理后缀最小值。>400×400>400 \times 400 时,根据同余和导数条件 y=Baby = \sqrt{\frac{B}{a \cdot b}} 确定最优,从不同位置算,复杂度 O(nw2+qw)O(n w^2 + qw),也可用花费对应买球数求解。 阅读全文
posted @ 2025-02-19 22:15 wing_heart 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 给定长度 n105n\leq10^5 的序列 {ai}\{a_i\}ai106a_i\leq10^6),初始 v=1v = 1,可至多 10^5 次乘除 lcm{b}\text{lcm}\{b\}b106\sum |b| \leq 10^6)使 vv 变为 gcd{ai×aj}\gcd\{a_i \times a_j\}。思路:考虑质因数指数(10^6 内最多 7 种),操作对应指数加减。用 min - max 容斥将 gcd{ai×aj}\gcd\{a_i \times a_j\} 转化为 gcd\gcdlcm\text{lcm} 乘除,把最小和次小指数表示为 (gcd{ai})2igcdij{aj}gcd{aj}(\gcd\{a_i\})^2 \prod_i \frac{\gcd_{i \neq j \{a_j\}}}{\gcd\{a_j\}},操作数约 28+8×282^8 + 8 \times 2^8,复杂度 O(nlogn+nω(a)+a)O(n\log n + n \omega(\sqrt{a}) + \sqrt{a})阅读全文
posted @ 2025-02-18 22:01 wing_heart 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 题目要求根据给定的 nn 个点(n2000n\leq2000)和表示编号在 [i,j][i,j]iji \le j)的点是否连通的 ai,ja_{i,j}ai,j={0,1}a_{i,j}=\{0,1\})构造出一棵合法的树,且保证有解。思路上先考虑小区间再合并到大区间,对于只有 a1,n=1a_{1,n}=1 的情况给出了一种构造方案(n=3n = 3 时无解);一般情况则按顺序加点,利用树的连通块性质,当 ai,n=1a_{i,n}=1 时,通过连边(i,ni,n)等方式合并连通块,采用小到大枚举 nn、从大到小枚举 ii 的方法,可证明其正确性,时间复杂度为 O(n2)O(n^2)。代码实现了上述构造树的过程。 阅读全文
posted @ 2025-02-17 16:16 wing_heart 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 题目中坐标轴 11nnn105n\leq10^5)有初始高度为 00nn 个房子,人在 (0,0)(0,0) 处,有 mm 次(m105m\leq10^5)修改房子高度操作,每次修改后求可见楼房数(连线不被遮挡)。思路:维护各点与 (0,0)(0,0) 连线斜率,可见楼房斜率严格递增且优先左边。直接暴力修改 O(1)O(1)、查询 O(n)O(n);采用线段树,维护节点满足要求的斜率序列长度,左儿子可直接合并,右儿子按需递归合并。单点修改,被影响结点 O(logn)O(\log n) 个,每次合并 O(logn)O(\log n),修改复杂度 O(log2n)O(\log^2 n),全局查询 O(1)O(1)。代码实现上述逻辑。 阅读全文
posted @ 2025-02-16 20:07 wing_heart 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 有 nn 个长 aia_in,ai105n,a_i\leq10^5)的随机字符串,f(s)f(s)ss 最小循环移位起始位置(多解取最小),求两循环序列 {f(si)}\{f(s_i)\} 期望相同位置数。思路:算相邻 ff 相同概率求和,定义 hah_ag(f(a)=x)g(f(a)=x),归并因数更新求解,预处理因数与 hh,复杂度 O((n+q)因数个数+nn)O((n + q)因数个数 + n\sqrt{n}),代码实现计算。 阅读全文
posted @ 2025-02-16 19:37 wing_heart 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 待订正。 阅读全文
posted @ 2025-02-15 15:17 wing_heart 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 题目给定长度为 nn 的序列,有 qq 次询问,每次询问区间 [l,r][l,r] 的最短子区间 [l,r][l',r'],使 [l,r][l,r] 中出现的数都在 [l,r][l',r'] 中出现,需输出 [l,r][l',r'] 的长度,1n,q2×1061\leq n,q\leq 2\times 10^61ain1\leq a_i\leq n。解题思路上,先有 O(n2)O(n^2) 的双指针暴力法。题解采用扫描右端点 pp 的方法,用数据结构维护右端点为 pp 时每个下标 kk 代表后缀的最小合法前缀 fkf_k,找出 apa_p 上一次出现位置 lapla_p,将询问的 ll 落在 (lap,p](la_p,p] 区间的 ffppmax\max,使用并查集让 lapla_p 指向 lap+1la_p +1 以找到最大合法数据左端点 dd。还可将问题类比二维偏序问题,转化为维护每个后缀点对权值来求解,因数据点权值维护需按顺序,所以按第二维一定顺序扫描。代码中用 zkw 线段树处理,添加了快读以优化。 阅读全文
posted @ 2025-02-14 20:33 wing_heart 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 题目给定一棵 nn 个点(n8000n\leq 8000)的无根树,每个点有取值范围 [li,ri][l_i,r_i],要求选择某些点染成特殊点,计算满足所有点离距离它最近的特殊点的距离 [li,ri]\in [l_i,r_i] 的染色方案数,空间限制 128M128M。解题采用 O(n2)O(n^2) 的树形 DP,设状态 fi,j,0/1f_{i,j,0/1} 表示点 ii 距离最近的特殊点距离是 jj 且该点在子树内/外,转移时逐个加入儿子考虑,因相邻点距离最近特殊点距离相差不超 11,每个状态有 O(1)O(1) 种转移。为满足空间要求,借鉴 dsu on tree 思想,先搜重儿子再搜轻儿子,轻儿子最多跳 log\log 次,使空间复杂度降为 O(nlogn)O(n \log n)阅读全文
posted @ 2025-02-14 19:06 wing_heart 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 题目给定长度为 nn 的含 `L`、`R`、`?` 的操作序列及长度为 mm 的一维坐标轴(11 左为墙,mm 右为悬崖),要求计算每个起点 k[1,m]k\in[1,m] 出发,重复执行操作序列无数次后仍存活的合法操作序列数量(n,m500n,m\leq500)。解题时先将操作序列抵消成 `L` 拼 `R` 形式,设 f(x)f(x) 为从 xx 出发经一次操作序列到达的位置,分 f(x)xf(x)\leq xf(x)>xf(x)>x 两种情况,分别用 dpi,jdp_{i,j}doi,j,0/1do_{i,j,0/1} 进行动态规划计算,时间复杂度为 O(n3)O(n^3)阅读全文
posted @ 2025-02-13 21:27 wing_heart 阅读(0) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示