题目链接 https://loj.ac/problem/565 题解 首先,若进行所有操作之后成功执行的操作数为 \(m\),最终得到的数为 \(w\),那么发生改变的二进制位的数量之和(即代价之和)为 \(2m - {\rm bit}(w)\).其中,\({\rm bit}(x)\) 表示 \(x\) 在二进制下 \(1\) 的个数. 证明:不难发现,一次操作会改变的二进制位的总数为进位次数\(+1\),因此执行 \(m\) 次操作后改变的二进制位的数量总和为总进位次数\(+m\).由于一次进…
题面 戳这里,题意简单易懂. 题解 首先我们发现,操作是可以不考虑顺序的,因为每次操作会加一个 \(1\) ,每次进位会减少一个 \(1\) ,我们就可以考虑最后 \(1\) 的个数(也就是最后的和),以及成功操作次数,就行了. 然后根据期望的线性性,我们可以从低到高按位考虑贡献. 考虑一个递推:\(f(i, j)\) 表示从后往前第 \(i\) 位总共被改变 \(j\) 次的概率,那么有两种转移: 进位:\(\displaystyle f(i - 1, j) \to f(i, \lfloor…
原文链接www.cnblogs.com/zhouzhendong/p/LOJ565.html 前言 标算真是优美可惜这题直接暴力FFT算一算就solved了. 题解 首先,假装没有进位,考虑解决这个问题. 对于每一位,考虑作用在其之上的概率为 \(p\) 的操作,构建多项式 \(((1-p) + px )\),那么将一个位置上所有这样的多项式乘起来之后, \(x^k\) 项系数就代表这个位置被操作 \(k\) 次的概率.对答案的贡献就是 \(k\times\) \(x^k\) 项系数. 考虑进位…
题目大意 有一个无限长的二进制串,初始时它的每一位都为 \(0\).现在有 \(m\) 个操作,其中第 \(i\) 个操作是将这个二进制串的数值加上 \(2^{a_i}\).我们称每次操作的代价是这次操作改变的位的数量. 我们以一定概率执行这些操作:第 \(i\) 个操作有 \(p_i\) 的概率执行,否则不执行. 请求出所有执行的操作的代价和的期望. \(n\leq 100000,m\leq 200000,0\leq a_i\leq n\) 题解 容易发现,如果进行了 \(k\) 次操作且把这…
[LOJ#531]「LibreOJ β Round #5」游戏 试题描述 LCR 三分钟就解决了问题,她自信地输入了结果-- > -- 正在检查程序 -- > -- 检查通过,正在评估智商 -- > 对不起,您解决问题的速度过快,与加密者的智商不符.转入精确匹配. > 由于您在模糊匹配阶段的智商差距过大,需要进行精确匹配. LCR 发现,精确匹配是通过与随机对手(称为「神犇」)游戏的方式,藉由游戏的决策来评定智商的机制.游戏规则如下: 有一个长为 \(n\),下标为 \([1,n]…
[LOJ#530]「LibreOJ β Round #5」最小倍数 试题描述 第二天,LCR 终于启动了备份存储器,准备上传数据时,却没有找到熟悉的文件资源,取而代之的是而屏幕上显示的一段话: 您的文件存在被盗风险,为安全起见,您需要通过「智商·身份验证 ver. 5.0 β 版」的验证,以证明您是资料的主人.请写一个程序解决下述问题: 给定 \(p\),求最小的正整数 \(n\),使得 \(n! mod p = 0\). 由于 \(p\) 很大,输入将给出 \(m\) 和 \(e_1, e_2…
[LOJ#516]「LibreOJ β Round #2」DP 一般看规律 试题描述 给定一个长度为 \(n\) 的序列 \(a\),一共有 \(m\) 个操作. 每次操作的内容为:给定 \(x,y\),序列中所有 \(x\) 会变成 \(y\). 同时我们有一份代码: int ans = 2147483647; for (int i = 1; i <= n; i++) { for (int j = i + 1; j <= n; j++) { if (a[i] == a[j]) ans = s…
[LOJ#515]「LibreOJ β Round #2」贪心只能过样例 试题描述 一共有 \(n\) 个数,第 \(i\) 个数 \(x_i\) 可以取 \([a_i , b_i]\) 中任意值. 设 \(S=\sum{x_i^2}​​\) ,求 \(S\) 种类数. 输入 第一行一个数 \(n\). 然后 \(n\) 行,每行两个数表示 \(a_i, b_i\). 输出 输出一行一个数表示答案. 输入示例 5 1 2 2 3 3 4 4 5 5 6 输出示例 26 数据规模及约定 \(1 \…
[LOJ#525]「LibreOJ β Round #4」多项式 试题描述 给定一个正整数 k,你需要寻找一个系数均为 0 到 k−1 之间的非零多项式 f(x),满足对于任意整数 x 均有 f(x) mod k=0.你给出的多项式次数不能超过 60000,且最高次系数必须非 0. 输入 输入一行,包含一个正整数 k. 输出 若无解,则只输出一个整数 −1.否则首先输出一个整数 n 表示你寻找的多项式的次数,随后 n+1 个整数按照从低位到高位的顺序输出多项式的系数. 在此之后的输出将被忽略.…
[LOJ#526]「LibreOJ β Round #4」子集 试题描述 qmqmqm有一个长为 n 的数列 a1,a2,……,an,你需要选择集合{1,2,……,n}的一个子集,使得这个子集中任意两个元素 i,j 均满足条件 gcd(ai,aj)×gcd(ai+1,aj+1)≠1,其中gcd(i,j)表示最大公约数,且这个子集的元素个数是所有满足上述条件的子集中最多的.输出这个子集的元素个数. 输入 输入的第一行包含一个正整数n. 随后n行,每行一个正整数ai. 输出 输出一个整数代表符合条件…