上一页 1 2 3 4 5 6 7 8 9 ··· 16 下一页
摘要: 题目描述了 $A$、$B$ 两队比赛,先胜 $n$($n \le 10^5$)局者胜,最多 $2n - 1$ 局。玩家有 $2^{2n - 1}$ 元,每轮可对 $A$ 或 $B$ 下注,赌赢赢双倍,输则赌注归零。有一种策略使 $A$ 赢玩家赚 $2^{2n - 1}$ 元,$B$ 赢玩家亏 $2^{2n - 1}$ 元。给定输赢局面,求每轮赌注。思路是设 $g_{x,y}$ 为 $A$ 赢 $x$ 局、$B$ 赢 $y$ 局时下一局赌注,$f_{x,y}$ 为此时赚到的钱,根据初始状态和转移方程简化得到 $f_{x,y}$ 和 $g_{x,y}$ 表达式,通过推导得出通项公式。 阅读全文
posted @ 2025-02-28 09:22 wing_heart 阅读(4) 评论(0) 推荐(0)
摘要: 给定长为 $n$($n \le 2 \times 10^5$)的序列 $\{ a_i \}$,$q$($q \le 2 \times 10^5$)次询问 $l,r,x$($|x|,|a_i| \le 10^{13}$),从 $l$ 到 $r$ 每个位置执行 $x \gets max(x,a_i - x)$ 求最终 $x$。思路:操作是以 $\lfloor \frac{a_i}{2} \rfloor$ 对称,用《插入 - 标记 - 回收》算法,询问离线,扫描 $a_i$ 时遇 $l_j$ 插 $x_j$、遇 $r_j$ 回收。用平衡树维护 $x$ 有序,记取负、加法 $tag$、交换左右儿子标记。按 $\lfloor \frac{a_i}{2} \rfloor$ 分裂树,改左树标记后合并,合并时裂树类似归并,复杂度 $O(n\log^2 n)$。 阅读全文
posted @ 2025-02-21 15:49 wing_heart 阅读(1) 评论(0) 推荐(0)
摘要: 题目给定 $n$($n \le 10^5$)个带颜色(颜色 $\in \{0,1,2\}$)的点,求包含三种颜色点的最小周长矩形。题解采用偏序问题做法,点关系有两种偏序:一是 $x_0 < x_1 < x_2 \land y_1 < y_2 < y_0$;二是 $x_0 \le x_1 \le x_2 \land y_0 \le y_1 \le y_2$。第二种拆成两个二维偏序,扫描 $x$ 维求解,复杂度 $O(n \log n)$。第一种把两种颜色作数据、第三种作询问,扫描 $x$ 维,遇到数据修改线段树,遇到询问单点查询,线段树维护 $0$ 的最小 $-x + y$、$1$ 的最小 $-y$ 及两者最小和,保证标记时间戳顺序,复杂度也是 $O(n \log n)$。代码多次调用求解函数并处理不同变换情况。 阅读全文
posted @ 2025-02-20 20:33 wing_heart 阅读(41) 评论(0) 推荐(0)
摘要: 买 $a$ 白 $b$ 黑球,抽中白球概率 $\frac{a}{a+b}$,期望抽 $\frac{a+b}{a}$ 次(经求导证明,本题所需为 $\frac{b}{a}$)。买 $A$ 个白球,贪心策略是用其他球凑 $A$ 模单价最低球个数 $b$ 的同余类,其余买此球。$O(400^3)$ 的 DP 求 $400 \times 400$ 内买球最少价钱并处理后缀最小值。$>400 \times 400$ 时,根据同余和导数条件 $y = \sqrt{\frac{B}{a \cdot b}}$ 确定最优,从不同位置算,复杂度 $O(n w^2 + qw)$,也可用花费对应买球数求解。 阅读全文
posted @ 2025-02-19 22:15 wing_heart 阅读(0) 评论(0) 推荐(0)
摘要: 给定长度 $n\leq10^5$ 的序列 $\{a_i\}$($a_i\leq10^6$),初始 $v = 1$,可至多 10^5 次乘除 $\text{lcm}\{b\}$($\sum |b| \leq 10^6$)使 $v$ 变为 $\gcd\{a_i \times a_j\}$。思路:考虑质因数指数(10^6 内最多 7 种),操作对应指数加减。用 min - max 容斥将 $\gcd\{a_i \times a_j\}$ 转化为 $\gcd$、$\text{lcm}$ 乘除,把最小和次小指数表示为 $(\gcd\{a_i\})^2 \prod_i \frac{\gcd_{i \neq j \{a_j\}}}{\gcd\{a_j\}}$,操作数约 $2^8 + 8 \times 2^8$,复杂度 $O(n\log n + n \omega(\sqrt{a}) + \sqrt{a})$。 阅读全文
posted @ 2025-02-18 22:01 wing_heart 阅读(16) 评论(0) 推荐(0)
摘要: 题目要求根据给定的 $n$ 个点($n\leq2000$)和表示编号在 $[i,j]$($i \le j$)的点是否连通的 $a_{i,j}$($a_{i,j}=\{0,1\}$)构造出一棵合法的树,且保证有解。思路上先考虑小区间再合并到大区间,对于只有 $a_{1,n}=1$ 的情况给出了一种构造方案($n = 3$ 时无解);一般情况则按顺序加点,利用树的连通块性质,当 $a_{i,n}=1$ 时,通过连边($i,n$)等方式合并连通块,采用小到大枚举 $n$、从大到小枚举 $i$ 的方法,可证明其正确性,时间复杂度为 $O(n^2)$。代码实现了上述构造树的过程。 阅读全文
posted @ 2025-02-17 16:16 wing_heart 阅读(32) 评论(0) 推荐(0)
摘要: 题目中坐标轴 $1$ 到 $n$($n\leq10^5$)有初始高度为 $0$ 的 $n$ 个房子,人在 $(0,0)$ 处,有 $m$ 次($m\leq10^5$)修改房子高度操作,每次修改后求可见楼房数(连线不被遮挡)。思路:维护各点与 $(0,0)$ 连线斜率,可见楼房斜率严格递增且优先左边。直接暴力修改 $O(1)$、查询 $O(n)$;采用线段树,维护节点满足要求的斜率序列长度,左儿子可直接合并,右儿子按需递归合并。单点修改,被影响结点 $O(\log n)$ 个,每次合并 $O(\log n)$,修改复杂度 $O(\log^2 n)$,全局查询 $O(1)$。代码实现上述逻辑。 阅读全文
posted @ 2025-02-16 20:07 wing_heart 阅读(7) 评论(0) 推荐(0)
摘要: 有 $n$ 个长 $a_i$($n,a_i\leq10^5$)的随机字符串,$f(s)$ 是 $s$ 最小循环移位起始位置(多解取最小),求两循环序列 $\{f(s_i)\}$ 期望相同位置数。思路:算相邻 $f$ 相同概率求和,定义 $h_a$ 求 $g(f(a)=x)$,归并因数更新求解,预处理因数与 $h$,复杂度 $O((n + q)因数个数 + n\sqrt{n})$,代码实现计算。 阅读全文
posted @ 2025-02-16 19:37 wing_heart 阅读(112) 评论(0) 推荐(0)
摘要: 待订正。 阅读全文
posted @ 2025-02-15 15:17 wing_heart 阅读(42) 评论(0) 推荐(0)
摘要: 题目给定长度为 $n$ 的序列,有 $q$ 次询问,每次询问区间 $[l,r]$ 的最短子区间 $[l',r']$,使 $[l,r]$ 中出现的数都在 $[l',r']$ 中出现,需输出 $[l',r']$ 的长度,$1\leq n,q\leq 2\times 10^6$,$1\leq a_i\leq n$。解题思路上,先有 $O(n^2)$ 的双指针暴力法。题解采用扫描右端点 $p$ 的方法,用数据结构维护右端点为 $p$ 时每个下标 $k$ 代表后缀的最小合法前缀 $f_k$,找出 $a_p$ 上一次出现位置 $la_p$,将询问的 $l$ 落在 $(la_p,p]$ 区间的 $f$ 对 $p$ 取 $\max$,使用并查集让 $la_p$ 指向 $la_p +1$ 以找到最大合法数据左端点 $d$。还可将问题类比二维偏序问题,转化为维护每个后缀点对权值来求解,因数据点权值维护需按顺序,所以按第二维一定顺序扫描。代码中用 zkw 线段树处理,添加了快读以优化。 阅读全文
posted @ 2025-02-14 20:33 wing_heart 阅读(21) 评论(0) 推荐(0)
摘要: 题目给定一棵 $n$ 个点($n\leq 8000$)的无根树,每个点有取值范围 $[l_i,r_i]$,要求选择某些点染成特殊点,计算满足所有点离距离它最近的特殊点的距离 $\in [l_i,r_i]$ 的染色方案数,空间限制 $128M$。解题采用 $O(n^2)$ 的树形 DP,设状态 $f_{i,j,0/1}$ 表示点 $i$ 距离最近的特殊点距离是 $j$ 且该点在子树内/外,转移时逐个加入儿子考虑,因相邻点距离最近特殊点距离相差不超 $1$,每个状态有 $O(1)$ 种转移。为满足空间要求,借鉴 dsu on tree 思想,先搜重儿子再搜轻儿子,轻儿子最多跳 $\log$ 次,使空间复杂度降为 $O(n \log n)$。 阅读全文
posted @ 2025-02-14 19:06 wing_heart 阅读(2) 评论(0) 推荐(0)
摘要: 题目给定长度为 $n$ 的含 `L`、`R`、`?` 的操作序列及长度为 $m$ 的一维坐标轴($1$ 左为墙,$m$ 右为悬崖),要求计算每个起点 $k\in[1,m]$ 出发,重复执行操作序列无数次后仍存活的合法操作序列数量($n,m\leq500$)。解题时先将操作序列抵消成 `L` 拼 `R` 形式,设 $f(x)$ 为从 $x$ 出发经一次操作序列到达的位置,分 $f(x)\leq x$ 和 $f(x)>x$ 两种情况,分别用 $dp_{i,j}$ 和 $do_{i,j,0/1}$ 进行动态规划计算,时间复杂度为 $O(n^3)$。 阅读全文
posted @ 2025-02-13 21:27 wing_heart 阅读(0) 评论(0) 推荐(0)
摘要: 云剪贴板。 阅读全文
posted @ 2025-02-09 16:28 wing_heart 阅读(135) 评论(0) 推荐(0)
摘要: 在给定的$n$个点、$m$条边(含重边和自环,边权$w$)的连通无向图上,有$q$次询问,每次给定$s,t,d,k$,表示从点$s$到$t$,初始工资$d$,每经一边工资异或边权,可选择$k$个时刻使工资翻倍,求最大最终工资($n,m\leq 10^5$,$q \leq 10$,$d,w \leq 2^{16} - 1$,$k \leq 40$)。思路是先考虑$k = 0$时,用DFS树和基本环构建线性基求解;$k>0$时,将问题转化为找$k$个点进行翻倍操作,利用FWT计算相关线性空间,通过从高位贪心、保留FWT形式优化转移,过程中对大于2的大质数取模,时间复杂度$O(qV (k + \log V))$ 。 阅读全文
posted @ 2025-02-08 21:54 wing_heart 阅读(2) 评论(0) 推荐(0)
摘要: 降维、二次偏序、总结。 阅读全文
posted @ 2025-02-06 21:59 wing_heart 阅读(86) 评论(1) 推荐(2)
上一页 1 2 3 4 5 6 7 8 9 ··· 16 下一页