随笔分类 - 题解
摘要:题意 给定一个半邻接矩阵 Si,jS_{i,j}Si,j,每个 Si,jS_{i,j}Si,j 表示 ∑x=ijax\sum_{x=i}^j a_x∑x=ijax 的正负性,有正数,负数,000 三种可能,现在给定矩阵 SSS,求任意一个可行的 aaa 序列,其中 −10≤ai≤10-10
阅读全文
摘要:题意 给定一个 nnn 个元素的序列 aaa,另外还给定 k,dk, dk,d,其中 ai≤ka_i \leq kai≤k,现在要求的是所有 [l,l+d−1][l, l + d - 1][l,l+d−1] 区间中出现的不同的数的个数最小是多少,其中 l≥1,l+d−1≤nl \geq 1, l
阅读全文
摘要:题意 给定一棵树,每个点有一个点权,一开始整棵树没有连任何边,接着 mmm 次操作,要求询问两点是否联通,修改点的权值和询问两个结点之间所有点权的和。 解法 本题和 P4312 完全相同,因为我还不会 LCT,又因为没有删边操作,考虑并查集加树剖离线维护。 注意并不是所有 bridge 都要求建边,
阅读全文
摘要:既然是埃及分数,考虑用这题的方法来解,可以去看对这题的题解。 但是这两题还是有点不同的,我们可以考虑这题有一些题解,因为并没有要求分解出的 h,w,rh,w,rh,w,r 不相同,所以我们考虑当 nnn 是偶数时,2n=1n+1n+1n÷2\frac{2}{n} = \frac{1}{n} + \f
阅读全文
摘要:远古 CEOI 题。 题意 题意我一直没看懂,但是我发现这道题其实是将一个序列中所有相同的数字只保留一个,若多个相同则保留最靠近序列末尾的一个。 接着将保留的序列逆序输出即可。 解法 考虑记录数组 vis,表示某个数是否出现过。因为要保留末端,所以逆序遍历即可。 代码: #include <iost
阅读全文
摘要:题意 给定一个 nnn 个元素的序列 aaa,设 f(i,j,x)f(i, j, x)f(i,j,x) 表示 ai∼aja_i \sim a_jai∼aj 中 xxx 出现次数,求有多少对 i,ji, ji,j 满足 i<ji < ji<j 且 f(1,i,ai)>f(j,n,aj)f(1, i
阅读全文
摘要:题意 给定一个初始值全为 000 的序列 aaa,有 qqq 次操作,每次指定一三个数 l,r,xl, r, xl,r,x,表示将 al∼ax−1a_l \sim a_{x-1}al∼ax−1 和 ax+1∼ara_{x+1} \sim a_rax+1∼ar 中每个数设为 aia_iai,
阅读全文
摘要:题意 给定数 nnn,求第 nnn 个反素数(反素数定义为一个数 xxx 是素数,将其每一位反转后得到数 ppp,若 p≠xp \neq xp=x 且 p∈primep \in primep∈prime,也就是 ppp 是素数时 xxx 是一个反素数)。 解法 暴力枚举即可,从小到大枚举每一个数进
阅读全文
摘要:题意 给定两个长度为 nnn 的序列 a,ba, ba,b,每个序列中没有相同元素,现在可以任意打乱 a,ba, ba,b,使得任意 ai+bi(1≤i≤n)a_i+b_i(1 \le i \le n)ai+bi(1≤i≤n) 不相同,多组测试。 解法 因为没有相同元素,考虑对 a,ba, ba
阅读全文
摘要:题意 给定一个数 xxx,若 x<10x < 10x<10,则 ans=xans = xans=x,否则找到一个最小整数 ppp 满足 ppp 的各位之乘积 =x=x=x。若无解输出 There is no such number!。 解法 显然可以贪心,因为 xxx 是各位乘积,所以其每个因数显然
阅读全文
摘要:题意 给定 nnn 个数的序列 aaa,有 mmm 次操作,每次操作有单点修改和询问区间 al,al+1,⋯ ,ara_l, a_{l+1}, \cdots, a_ral,al+1,⋯,ar 中每个数的出现次数的 mex。 解法 考虑莫队维护。 我们要维护 mex,并且是带修莫队,所以回滚莫队
阅读全文
摘要:简略题意 给定一个 nnn 个元素的序列 aaa,并且给定 mmm 次询问,每次询问给定区间 [l,r][l,r][l,r],设 g=gcd(al,al+1,al+2,⋯ ,ar)g = \gcd(a_l,a_{l+1}, a_{l+2}, \cdots, a_r)g=gcd(al,al+1,
阅读全文
摘要:题意 Sierpinski 三角形按照如题意所述分裂,问与某个三角形有共边的所有三角形。 解法 我们不难观察出这题只需分类讨论。 当末尾是 444 时,例如 Taaaaa4,那么与之有共边的有 Taaaaa1、Taaaaa2、Taaaaa3。 当这个字符串中只有一种不同的从 111 到 444 的数
阅读全文
摘要:传送门:SP30906 ADAUNIQ - Ada and Unique Vegetable。 题意 给定一个 nnn 个元素的序列 aaa 和 mmm 次操作,每次操作可能是 ax←ya_x \gets yax←y 或者询问区间 [l,r][l,r][l,r] 中有多少个数只出现过一次。 解法
阅读全文
摘要:题意 给定序列 aaa,对其离散化,输出离散化后的结果。 解法 先用 vector 储存并排序去重,然后 lower_bound 即可,注意从 000 开始,要换行。 代码: #include <bits/stdc++.h> using namespace std; const int N = 1e
阅读全文
摘要:这题无需多疑,就是模板题,我们有公式 cij=∑k=1n(aik×bkj)c_{i_j}=\sum_{k=1}^n (a_{i_k} \times b_{k_j})cij=∑k=1n(aik×bkj)。 然后根据公式模拟即可。 代码: #include <cstdio> #includ
阅读全文
摘要:题意 给定若干个 nnn 个点 mmm 条边的无向图,求出所有边权减去最小生成树的结果。 多组数据,以 n=0,m=0n = 0, m = 0n=0,m=0 结尾,每组数据先输入 n,mn, mn,m,接着输入 mmm 行,每行 333 个整数 u,v,wu, v, wu,v,w,表示 uuu 到
阅读全文
摘要:题意 给定一个 nnn 个元素的序列 aaa,求出 (∑i=1n−1∑j=i+1n∣aj−ai∣)×2(\sum_{i=1}^{n-1} \sum_{j=i+1}^{n} \lvert a_j-a_i \rvert ) \times 2(∑i=1n−1∑j=i+1n∣aj−ai∣)×2。 解
阅读全文
摘要:真水。 代码: #include <stdio.h> int main() { long long n, m; scanf("%lld %lld", &n, &m); printf("%s\n", (n >= m ? "YES" : "NO")); return 0; }
阅读全文
摘要:题意 给定一个栈,按照题意模拟每次操作,问一共会做多少次操作。 解法 明显暴力不可行,但是我们发现假设这个栈从下到上定义为 a1,a2,a3,⋯ ,ana_1, a_2, a_3, \cdots, a_na1,a2,a3,⋯,an,设 a1=1a_1 = 1a1=1 表示蓝色,a1=2a_
阅读全文

浙公网安备 33010602011771号