08 2022 档案

摘要:DP + map优化转移 Problem - D2 - Codeforces 题意 给 n (1 <= n <= 1e5) 个元素的数组,每次操作可以选一个区间 [l,r] 和一个非负整数 x,花 rl+12 的代价让 [l,r] 的元素 a[ 阅读全文
posted @ 2022-08-29 17:59 hzy0227 阅读(52) 评论(0) 推荐(0) 编辑
摘要:建图,贪心 Problem - D - Codeforces 题意 给 q 个约束 a[i];|;a[j]==x, 求满足这 q 个约束的最小字典序的数组 a (保证有解) 思路 把 q 个约束中 i == j 的优先处理掉,即 a[i] = x,这些位置不再考虑 按位考虑,分别处理 30 位 阅读全文
posted @ 2022-08-29 17:20 hzy0227 阅读(14) 评论(0) 推荐(0) 编辑
摘要:置换群 + 生成函数 + NTT + 启发式合并/分治 题意 给一个 1-n 的排列 p 和一个非负整数 k,求大小为 k 的 {1, 2, 3,... n} 的子集合 T 的数量,满足 即 T 的元素按 p 置换一轮后和自身没有交集 思路 i -> pi 连边,找到 m 个环 设某个环的 阅读全文
posted @ 2022-08-27 13:52 hzy0227 阅读(45) 评论(0) 推荐(0) 编辑
摘要:#include <bits/stdc++.h> #define clog(x) std::clog << (#x) << " is " << (x) << '\n'; using ll = long long; // #include "include/izlyforever.hpp" names 阅读全文
posted @ 2022-08-26 13:01 hzy0227 阅读(38) 评论(0) 推荐(0) 编辑
摘要:贪心、逆序对 E - String Reversal 题意 给一个长度为 n 的字符串 s,(n <= 2e5), 把 s 反转后的字符串记为 s', 每次只可以交换相邻两个字符,求把 s 变为 s' 的最小次数 思路 可以从左到右枚举 s,对于当前位置 i,字符 a 要变成 字符 b,则较靠前的 阅读全文
posted @ 2022-08-14 19:18 hzy0227 阅读(29) 评论(0) 推荐(0) 编辑
摘要:LIS E - Make It Increasing 题意 给定数组 a, (n <= 5e5), 有一个集合 b ,b 里面存的是 a 数组的某些下标,这些位置的 a 的值不能改变 其余位置可花 1 代价变为任意一个整数,求让 a 变成严格单调递增的最小代价;若不可以则输出 -1 思路 有个 阅读全文
posted @ 2022-08-14 18:53 hzy0227 阅读(13) 评论(0) 推荐(0) 编辑
摘要:贪心、扫描线思想 D - Permutation Restoration 题意 有 1n 的一个排列 ai, 给定 bi, 满足 bi=iai, 求 ai (n <= 5e5) 思路 先解出每一个 ai 的取值区间,然 阅读全文
posted @ 2022-08-14 14:12 hzy0227 阅读(26) 评论(0) 推荐(0) 编辑
摘要:st表 or 后缀和 优化dp C - Robot in a Hallway 题意 有一个两行 n 列的网格,每个格子有一个解锁时间 a[i][j] (注意这个是解锁的时间,最早到达该点的时间要 + 1), 过了这个时间才能走进这个格子。每秒可以选择上下左右移一格或者不动,求从 (0, 0) 出 阅读全文
posted @ 2022-08-13 15:49 hzy0227 阅读(63) 评论(0) 推荐(0) 编辑
摘要:前缀和优化DP Problem - D - Codeforces 题意 给定 n,k (1<= n, k <= 2e5), 若当前位置是 i,已经走了 j 次,则下一次只能走 j + k - 1 的倍数步; 求从 0 开始,走到 [1, n] 中每个位置的方案数 思路 先想一个朴素dp 设 $f[i 阅读全文
posted @ 2022-08-12 19:46 hzy0227 阅读(51) 评论(0) 推荐(0) 编辑
摘要:枚举 [0,2n1] 子集 O(n3) for (int s = 0; s < 1 << n; s++) for (int ns = s; s; ns = (ns - 1) & s) 证明: 法1: 对于每一位 1. s = 0, ns = 0 2. s = 1, ns = 0, 1 阅读全文
posted @ 2022-08-01 18:44 hzy0227 阅读(29) 评论(0) 推荐(0) 编辑
摘要:Problem - C - Codeforces 题意 有 n ( n <= 36) 个点,每个点有颜色,每个颜色都相同的权值(为正数);有 m 条边,u -> v 且 u < v, 求从 1 号点到 i 号点的路径上,选颜色互不相同的一些点,使权值和最大 状压dp 首先可考虑 TSP 问题类似的状 阅读全文
posted @ 2022-08-01 18:30 hzy0227 阅读(45) 评论(0) 推荐(0) 编辑

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