摘要: 注:以下例题的修改和查询操作都是与树的点权有关,若与边权有关也是类似的做法只需要在细节上略微修改即可。 例题 1 $n$ 个节点的树,$m$ 次操作,单点加,子树求和,$n,m \le 5 \times 10^6$。 DFS 序转化为序列上单点加,区间求和。 例题 2 $n$ 个节点的树,$m$ 次 阅读全文
posted @ 2022-03-24 11:26 jhqqwq 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 基数排序 1 const int N = 1e5 + 10; 2 int n, a[N]; 3 4 void radix_sort(unsigned int *a, int l, int r) 5 { 6 const unsigned int D = 1 << 16, k = D - 1; 7 st 阅读全文
posted @ 2022-03-14 07:48 jhqqwq 阅读(29) 评论(0) 推荐(0) 编辑
摘要: ABC003D(Difficulty:2033) 部分分 $D+L=X\times Y$ 答案显然为 $(R-X+1)\times (C-Y+1)\times\dbinom{X\times Y}{D}$。 考虑分成没有卡到上方、下方、左侧、右侧的四个集合,容斥出答案即可,代码用四位二进制数实现比较简 阅读全文
posted @ 2022-03-13 16:41 jhqqwq 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 爬山算法在单峰函数中比较优秀,但是当函数不是单峰时很容易陷入局部最优解,此时需要用模拟退火(Simulate Anneal)。 一般来讲,当问题规模非常巨大常规算法难以解决且求的是最优解问题,或者是你根本不会正解想要骗分时,模拟退火非常好用。 模拟退火关键在于几个参数:初始温度 $t_0$,终止温度 阅读全文
posted @ 2022-03-11 14:41 jhqqwq 阅读(121) 评论(0) 推荐(0) 编辑
摘要: P1177 【模板】快速排序 基数排序,时间复杂度为 $O((n+d)\log_d{V})$,一般 $n\ge10^5$ 取 $d=2^{16}$ 很优秀,可以将 $\log_d{V}$ 看成是一个很小的常数。 注意序列存在负数时要先区分出正数和负数,分别进行基数排序。 1 const int N 阅读全文
posted @ 2022-03-08 07:49 jhqqwq 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 1、Codeforces Round #775 (Div. 2, based on Moscow Open Olympiad in Informatics) A 注意最多只能跳一次。 1 const int N = 110; 2 int t, n, l, r, a[N]; 3 4 int main( 阅读全文
posted @ 2022-03-07 07:46 jhqqwq 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 1、AtCoder Beginner Contest 242 A 注意排名在 $B$ 之后就没有 T-shirt 了。 1 int main() 2 { 3 int a, b, c, x; read(a, b, c, x); 4 if (x <= a) printf("%.10lf", 1.0); 阅读全文
posted @ 2022-03-06 15:43 jhqqwq 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 1、牛客小白月赛45 A 注意即使跳不到对面也得跳一次。 1 int main() 2 { 3 int x, n; read(x, n); 4 cout << (n > x ? x : 1ll * n * x); 5 fwrite(pbuf, 1, pp - pbuf, stdout); retur 阅读全文
posted @ 2022-03-05 17:45 jhqqwq 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 1、XR0210 T1:U105209 拼数(P1012 [NOIP1998 提高组] 拼数) 将数字串按照 $a+b>b+a$ 排序,如何证明全序关系?即求证:若 $a+b>b+a$,$b+c>c+b$,则 $a+c>c+a$。 证明: 设 $a$ 的位数为 $x$,$b$ 的位数为 $y$,$c 阅读全文
posted @ 2022-03-04 17:57 jhqqwq 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 315. 旅行 需要记录每个前缀的每个字符的最后一次出现位置来优化 DFS 输出方案。 1 const int N = 85, S = 26; 2 string s, t; 3 int ans, a[N][S], b[N][S], dp[N][N]; 4 vector<string> res; 5 阅读全文
posted @ 2022-02-27 22:45 jhqqwq 阅读(29) 评论(0) 推荐(0) 编辑