随笔分类 - 测验
摘要:十三联测 #8 B 给定序列长度为 \(m\) 的序列 \(B\),随机生成值域为 \([1,m]\),长度为 \(n\) 的序列 \(A\)。\(n\le 10^5,m\le 100\)。 每次操作是令 \(A_i\gets B_{A_i}\),问使得 \(A\) 跟原来一样需要的最少的操作次数的
阅读全文
摘要:C 第 \(i\) 个同学一开始有第 \(i\) 份礼物,每个同学对礼物的喜爱度都有排序。 \(q\) 次询问把所有人划分为两个集合,集合里的人可以互相交换礼物,问方案数使得每个人喜爱度不降。 \(n\le 18\)。 若 \(i\) 能将礼物给 \(j\) 那么连一条 \(i\to j\) 的边,
阅读全文
摘要:十三联测 #7 B 已知有一棵树,有 \(n-1\) 次操作,每次操作之前没有操作过的点 \(x\): 新建节点 \(x+n\),并扫描原树上与 \(x\) 连接的点 \(j\),若存在 \((j+n, x)\) 的边就删掉,换成 \((j+n,x+n)\)。 否则,加入 \((x+n,j)\) 这
阅读全文
摘要:十三联测 #6 D 一张图,每个点选或不选,问所有情况下,两端点都被选的边的数量的 \(k\) 次方的和。 \(n,m\le 10^5,k\le 3\)。 考虑 \(k=3\) 的情况,考虑其组合意义,对于所有选点情况,选出 \(3\) 条可重复的边的方案数。 这样就可以拆贡献了,考虑这三条边是什么
阅读全文
摘要:A 给定数组 \(a,b\),长度为 \(n\),\(\sum a,\sum b\le V=10^7\),问 \(\sum_{i=1}^n\sum_{j=1}^n\sqrt{|a_i-b_j|}\)。 躺尸题,\(a,b\) 不同的数只有 \(\sqrt V\) 种。 B 坐标轴上有 \(n\) 个
阅读全文
摘要:C \(n\times m\) 个人,选择某人的代价是 \(a_{i,j}\),可以使其负责其所在的行/列,问使得所有行列被负责最小代价。 \(nm\le 10^5\)。 若选择 \(a_{i,j}\),看做是第 \(i\) 行跟第 \(j\) 列连了一条有向边,你发现最后图的形式是一个基环树森林。
阅读全文
摘要:C 有 \(n\) 个点,一开始 \(s\) 点是白色,其余黑色,你可以花费 \(p_i\) 的代价使 \(i\) 点的颜色变成 \(a_i\) 点的颜色。 若第 \(i\) 个点为白色,那么会有 \(w_i\) 的代价,问贡献减去代价最大是多少。\(n\le 5000\)。 不难发现这是一个外向基
阅读全文
摘要:A 你要求有多少个长度为 \(n\) 的排列 \(p\) 满足 \(mex(p_1,p_2,...p_i)=a_i\)。\(n\le 1e5\)。 可以看出 \(a_i\) 如果有变化,如 \(a_i=c,a_{i+1}\neq a_i\),那么 \(p_{i+1}=c\)。 那么我们把没有确定的数
阅读全文
摘要:A 一棵树,你每天可以选择不超过 \(m\) 个祖先都被选择的点,问最少多少天选完。\(n\le 10^5\)。 考虑贪心,每次选出子树深度最大的 \(m\) 个点或子树大小最大的 \(m\) 个点都是对的。 B 一棵树 \(n\le 5e5\),选若干出来,对于每个点,如果其儿子有选,那么不能被选
阅读全文
摘要:A \(n\) 个人之间有若干认识关系,你要把这些人划分为两个集合,使得集合里的每个人都认识偶数个人。 求方案数,\(n\le 1000\)。 设每个人的状态为 \(0/1\) 表示两个集合,那么第 \(i\) 个人在其集合里认识的人个数是 \(\sum_{j}(x_i\otimes x_j\oti
阅读全文
摘要:A \(n\times n\) 的平面上有 \(m\) 条通道,从 \((a_i,b_i)\) 到 \((c_i,d_i)\),代价为 \(|a_i-c_i|+|b_i-d_i|-1\)。 同时你可以花 \(1\) 的代价移动到四联通的点。问所有点之间两两最短距离之和。\(n\le 1e9,m\le
阅读全文
摘要:A 对于长度为 \(2^n\) 的序列 \(A,B\),求 \(c_{k}=\max_{i|j}a_i+b_j\),\(n\le 18\)。 考虑分治:每次分成 \(A_0,A_1,B_0,B_1\)。 那么,\(C_0=\max(A_0+B_0),C_1=\max(A_0+B_1,A_1+B_0,
阅读全文
摘要:A 一个基环树上,给出每条边可以存在的时间,你还有 \(L\) 的时间可以分配给边。 你要安排边开始存在的时间,使得联通的时间最长,求这个值。\(n\le 10^5\)。 先不考虑 \(L\)。如果是树,那么答案是边存在时间的最小值。 如果是基环树,那么把环上次小边加上最小边,并删掉最小边,变成树求
阅读全文
摘要:以后不记录躺尸题了。 B 有 \(n\) 个序列对应 \(n\) 个人,每个序列长度为 \(k_i\)。你可以花费 \(a_{i,j}\) 的时间把第 \(i\) 个人从 \(j-1\) 提升到 \(j\) 级。 求前 \(m\) 个时刻,每个时刻里每个人级数的和的和最大值。\(\sum k\le
阅读全文
摘要:A 你可以花费 \(x^2\) 的代价使 \(A_i\) 加上 \(x\),\(x\ge 0\),最后再加上代价为 \(c\sum |A_i-A_{i-1}|\),问最小代价。 \(n\le 10^5\)。 我们可以把序列分成若干“山峰”以及“山谷”,山峰是不会加的。考虑从山谷开始做,即每次取出最小
阅读全文
摘要:A 有序列 \(A\),你可进行若干次操作:选定 \(A_i,A_j\),使 \(A_i=\gcd(A_i,A_j)\),\(A_j=lcm(A_i,A_j)\)。 \(n,A_i\le 10^6\)。 把每个质因数独立开,发现无论怎么操作,每个数某质因数的次数的集合不变。 所以贪心地,从大往小放置
阅读全文
摘要:A 有长度为 \(n\) 序列 \(A\),你要把构造长度相同的序列 \(B\) 使得 \(\sum B_i=m\)。 满足随机打乱 \(B_i\) 后,期望 \(\sum [A_i>B_i]\) 最小,求这个值。\(n\le 1000,m\le 5000\)。 我们考虑背包,也就是 \(0\sim
阅读全文
摘要:A \(n\) 个点的完全图,\(i\to j(i<j)\) 的边权是 \(u_j-u_i\),问最小生成树。\(n\le 3e5\)。 考虑 boruvka 算法。boruvka 算法是重复以下过程,直到只有一个连通块。 找到所有连通块的连向外面的最小边,并把这些边加入最小生成树。不难发现这是最多
阅读全文
摘要:A 给定序列 \(S\),一开始只有一个数 \(x\) ,每次操作是把每个 \(S_i\) 替换为 \(S_i\) 的所有约数(从小到大排序) 求 \(k\) 次操作后序列前 \(m\) 的位置的和。\(x,k\le 10^{12},m\le 10^7\)。 因为把每个 \(S_i\) 替换为 \(
阅读全文
摘要:A 有一个数 \(n\) 和 \(m\) 种操作,第 \(i\) 次操作使得 \(n\gets n/A_i\),问最多遍历多少个数。 \(n\le 10^5,m\le 10\)。 不难发现暴力即可通过。 B 给定集合 \(S\),对于每个 \(i\in [1,m]\) 你需要求出选择数最多和最少的值
阅读全文