上一页 1 ··· 30 31 32 33 34 35 36 37 38 ··· 41 下一页
摘要: 可以想到一个结论:(不会证) 在原字符串中的相同字符,经过操作后相对位置不变。 思路 我们可以给 'a'-'z' 每个字符开个数组, 它们各自在目标字符串中的出现位置存到一个“桶”里。 然后再把这个“桶”对应到原字符串里,就会得到一个数组。 比如说,aabcba 这个字符串,它的目标字符串就是 ab 阅读全文
posted @ 2021-10-20 16:54 Sk_sync_closer 阅读(32) 评论(0) 推荐(0)
摘要: 看几个常见问题: Q1: 这题连状态都没有,怎么搜? A1: 从低位到高位一位一位地搜,把当前的数字当成状态。 Q2: $10^{10}$,质数怎么筛? A2: 先写个正常的筛: for(int i = 2;i <= 10000000;++i) {if(!np[i]) pri[cnt++] = i; 阅读全文
posted @ 2021-10-19 19:50 Sk_sync_closer 阅读(40) 评论(0) 推荐(0)
摘要: 基本思路都是一样的:扫一遍桶,算 $\sum^{199}_{i=0} \sum^{a_i-1}_{j=1} j$ ($a$ 是桶) 我们知道, T2直接把数 $\bmod 200$ 扔进桶里是会 WA0pts 的(痛失100pts) 因为很明显如果 $i$ 是 $<200$ 的正数,那么 $i\bm 阅读全文
posted @ 2021-10-19 16:54 Sk_sync_closer 阅读(38) 评论(0) 推荐(0)
摘要: 题意 一个数列,每次操作把一个位置改成 1, 每次操作后,求数列中有多少段连续的 1。 思路 分类讨论,考虑每次操作的位置的左右两边的数(只是两个数): 左右两边的数都是 0:...0 1 0... 这个位置单独构成一段,答案加一。 左右两边的数都是 1:...01...1 1 1...10... 阅读全文
posted @ 2021-10-18 20:44 Sk_sync_closer 阅读(50) 评论(0) 推荐(0)
摘要: A 科普 getline 在 OI 中,经常用 getline(cin, s) 读入一行(包含空格)到 s 中。 string::find 假如有两个叫 a,b 的 string。 那么 a.find(b) 返回 b 在 a 中第一次出现的位置的下标。 如果 b 没有在 a 中出现过,返回 -1。 阅读全文
posted @ 2021-10-17 16:02 Sk_sync_closer 阅读(28) 评论(0) 推荐(0)
摘要: 前置知识:线段树求区间最大值 思路 先考虑暴力的做法: 开一个桶 $cnt$,记录当前区间内的值出现个数。 我们可以发现,每次区间移动后,不需要重新统计, 只需要把 $cnt[$新加入区间的值$]$++,$cnt[$退出区间的值$]$--即可。 询问时输出出现次数最多的值的个数,也就是 $cnt$ 阅读全文
posted @ 2021-10-14 18:57 Sk_sync_closer 阅读(44) 评论(0) 推荐(0)
摘要: 引入 给你一个矩阵,你需要维护一种数据结构,要 $O(1)$ 询问子矩阵和,应该怎么写? 我们都知道,一维的子段和可以前缀和维护,可以考虑把前缀和扩展到 2 维。 假设二维前缀和矩阵是 $s$,也就是 $s_{xy}=\sum\limits_{i=1}^x\sum\limits_{j=1}^ya_{ 阅读全文
posted @ 2021-10-14 11:28 Sk_sync_closer 阅读(42) 评论(0) 推荐(0)
摘要: 概念: 可见山,不可见山:字面意思。 块:两个可见山之间的部分。参考下图: $inv_x$:$x$ 的逆元。 前置芝士: 逆元 只需知道 $\dfrac a b\bmod P=(a\bmod P)×(inv_b\bmod P)\bmod P$ 即可。 求积公式 为了方便表达,$∏\limits_{i 阅读全文
posted @ 2021-10-11 21:06 Sk_sync_closer 阅读(34) 评论(0) 推荐(0)
摘要: 考场脑抽T2读错题了 T1 签到题。 模拟大家都会,下面是 $O(1)$ 做法: #include <iostream> using namespace std; int w, k, a, n; int main() { cin >> w >> k >> a >> n; if(n > k) cout 阅读全文
posted @ 2021-10-04 09:39 Sk_sync_closer 阅读(18) 评论(0) 推荐(0)
摘要: T1 正常模拟即可,下面 code 的判断保证时间晚的答案不会被更新。 #include <iostream> using namespace std; int n, ans, maxn = -1, r[100050]; int main() { cin >> n; for(int i = 0, a 阅读全文
posted @ 2021-09-25 20:44 Sk_sync_closer 阅读(43) 评论(0) 推荐(0)
上一页 1 ··· 30 31 32 33 34 35 36 37 38 ··· 41 下一页