首页 > 其他分享 >2018年各大赛事题解

2018年各大赛事题解

时间:2023-01-08 19:59:03浏览次数:70  
标签:frac log 题解 复杂度 2018 连环 赛事 mathcal sum

大多数题解都是口胡,不保证正确性,有错请指出,谢谢。

CQOI2018

除了“交错序列”和“九连环”两道数学题以外,全是板子题,遭不住了。

  • 破解D-H协议

    BSGS 板子题,时间复杂度 \(\mathcal{O}(n\sqrt P\log P)\) 或 \(\mathcal{O}(n\sqrt P)\)。

  • 社交网络

    矩阵树定理板子题,时间复杂度 \(\mathcal{O}(n^3)\)。

  • 交错序列

    由于 \(x+y=n\) ,所以权值转化为 \((n-y)^ay^b=\sum_{i=0}^{a}(-1)^{a-i}\binom{a}{i}n^iy^{a+b-i}\) 。只需要求出一个序列的权值是 \(y^{i},i\in[a,a+b]\) 的所有答案即可。

    经典的 dp :\(f_{i,j,0/1}\) 表示长度为 \(i\) 的序列,权值是 \(y^j\) ,最后一个数是 \(0/1\) 的权值和。转移:

    \[f_{i,j,0}=f_{i-1,j,0}+f_{i-1,j,1} \]

    \[f_{i,j,1}=\sum_{k=0}^{j}\binom{j}{k}f_{i-1,k,0} \]

    矩阵加速转移即可,时间复杂度 \(\mathcal{O}((a+b)^3\log n)\) 。

    也可以直接枚举 1 的个数,写出最后的答案:

    \[\sum_{i=0}^{\lfloor\frac{n+1}{2}\rfloor}\binom{n-i+1}{i}(n-i)^ai^b \]

    线性筛 \(i^a,i^b\) 即可,时间复杂度 \(\mathcal{O}(n(1+\frac{\log a+\log b}{\log n}))\) 。

    洛谷题解区有人用 EI 科技做到了时间复杂度 \(\mathcal{O}(\log n+(a+b)\log (a+b))\) ,但我不会。

  • 解锁屏幕

    显然的状压 dp :\(f_{i,j}\) 表示经过的点集为 \(i\) ,最后一个点是 \(j\) 的方案数。转移时枚举下一个点 \(k\),预处理连 \((j,k)\) 需要事先经过哪些点即可。时间复杂度 \(\mathcal{O}(2^nn^2)\) ,除去无用状态后可以通过。

  • 九连环

    通过观察样例,可以盯出来答案是 \(\lfloor\frac{2^{n+1}}{3}\rfloor\) ,高精度计算即可,时间复杂度 \(\mathcal{O}(nm)\) 。

    详细的推导过程:两个规则都是允许随意上下,那么上 \(n\) 连环和下 \(n\) 连环互为逆过程,所以上 \(n\) 连环和下 \(n\) 连环的步数是一样的。观察四连环的拆卸过程,发现整个过程可以归纳为:

    \[111...11\rightarrow 11000...00\rightarrow 01000..00\rightarrow 0111...111 \rightarrow 000...00 \]

    也就是拆 \(n\) 连环,先拆 \(n-2\) 连环,再操作一步,在上 \(n-2\) 连环,再拆 \(n-1\) 连环。设 \(f_{n}\) 为拆 \(n\) 连环所需的步数,那么:

    \[f_n=f_{n-1}+2f_{n-2}+1 \]

    \[f_0=0,f_1=1 \]

    稍微变形一下便容易得到:

    \[f_n+f_{n-1}+1=2(f_{n-1}+f_{n-2}+1) \]

    \[f_n+f_{n-1}=2^n-1 \]

    \[f_n=f_{n-2}+2^{n-1} \]

    分奇偶讨论一下即可得到结论。

  • 异或序列

    区间异或和转化成前缀异或和后就可以直接莫队了,时间复杂度 \(\mathcal{O}(n\sqrt m)\) 。

AHOI2018初中组

虽然是初中组,但整体思维难度比 CQOI 高。“根式化简”需要发现 \(x^\frac{1}{4}\) 的特殊性质;“分组”的原题是简单的贪心,加强版是经典套路;“球球的排列”通过经典的转化后变成经典的计数问题。

  • 报名签到

    同题目名字,签到题,答案为 \(\sum_{i=1}^{n-1}\max(a_i,a_{i+1})\)

  • 根式化简

    显然 \(a\le x^{\frac{1}{3}}\) ,但直接 \(\mathcal{O}(n(\frac{x^\frac{1}{3}}{\log x}+\log x))\) 并不能过。再进一步观察,可以发现把所有小于等于 \(x^{\frac{1}{4}}\) 的质数都尝试了之后,剩下的未被分解的 \(x'\) 要么是一个完全立方数(并且形如 \(p^3\) ,\(p\) 是质数),要么不含立方因子。所以提前处理一个所有小于等于 \(x^\frac{1}{3}\) 的质数的立方表,在上面二分查找一下即可,时间复杂度 \(\mathcal{O}(n(\frac{x^\frac{1}{4}}{\log x}+\log x))\)

  • 分组

    排序后贪心地模拟分组情况就好了,优先把当前的人加到之前人数最小的组里,剩余的没分配到的组就抛弃掉,开个队列维护就好。时间复杂度 \(\mathcal{O}(n\log n)\) 。

    值得注意的是(其实就是我读错题了),此题不需要满足分组在原序列连续。如果加了这个限制的话,可以二分答案后,用单调栈加线段树维护 dp 可以转移的所有位置来快速计算 dp 值,时间复杂度 \(\mathcal{O}(n\log^2n)\) ,因为跟此题关系不大,不详细叙述。

  • 球球的排列

    经典题。把所有数的平方因子去掉之后,问题转化成每个元素有一个颜色,问有多少排列满足相邻元素颜色不同。\(\mathcal{O}(n^3)\) 做法大概就是按颜色依次插入球,然后 dp:\(f_{i,j,k}\) 表示当前插入第 \(i\) 个球,之前的颜色里,相邻的有 \(j\) 对,当前的颜色里,相邻的有 \(k\) 对的方案数。转移时分类讨论即可。

    然而这个问题有熟知的 \(\mathcal{O}(n\log^2n)\) 做法。以下认为颜色相同的球没有区别,最后方案数乘一些阶乘就好了。设恰好有 \(i\) 对相邻球颜色相同的排列个数为 \(G_i\) ,至少有 \(i\) 对相邻球颜色相同的排列个数为 \(F_i\) ,由二项式反演:

    \[F_i=\sum_{j=i}^{n-1}\binom{n-1}{j}G_j \]

    \[G_i=\sum_{j=i}^{n-1}(-1)^{j-i}\binom{n-1}{j}F_j \]

    下面求 \(F\) 。记 \(m\) 为颜色种类数, \(c_i\) 的为第 \(i\) 种球的个数,设 \(h_{i,j}\) 为把第 \(i\) 种球分成若干个连续段,其中相邻的球有 \(j\) 组的方案数,\(\hat H_i(z)\) 为 \(h_i\) 的 EGF。那么容易得到 \(\hat H_i(z)=\sum\limits_{j=0}^{c_i-1}\frac{\binom{c_i-1}{j}z^j}{j!}\) 。所以 \(F_i=n![z^i]\prod\limits_{i=1}^{m} H_i(z)\),分治 NTT 计算即可。

HNOI/AHOI2018

  • 寻宝游戏

    一个经典的结论是某一位最后是 0/1 取决于最后一次 "&0"/"|1",其他操作对值不产生任何影响。有这个结论之后,还可以构造出一个更强的结论:对某一位 \(i\) 来说,记它的所有操作于它的值拼接而成的二进制表示为 \(b_i\),低位为先操作的值,高位为后操作的值。令 & 为 1,| 为 0 ,那么每种插入的运算符方案也对应一个二进制数 \(x\) ,高低位同上。那么,第 \(i\) 位最后的结果是 1 当且仅当 \(x<b_i\) 。这个结论是不难证明的。所以可以先对于每一位的二进制数基数排序一下,查询的时候找到所有 1 的位的最小的数 \(x\) 和所有 0 的位的最大的数 \(y\) ,答案即为 \(\max(y-x,0)\) 。

标签:frac,log,题解,复杂度,2018,连环,赛事,mathcal,sum
From: https://www.cnblogs.com/Sword-K/p/17034846.html

相关文章

  • Atcoder ABC284 前五题题解
    ABC284A-SequenceofStrings题意:有n个字符串\(s_1,s_2,s_3,...,s_n\),要求按\(n,n-1,n-2,...,1\)的顺序输出样例:输入3TakahashiAokiSnuke输出......
  • Codeforces 1305 F Kuroni and the Punishment 题解 (随机算法)
    题目链接首先注意到每个数最多操作1次就能让他变成2的倍数,所以答案\(\len\)。如果我们能枚举[1,1e12]中所有的质数,并对每个质数p求出把数组中所有数都变成它的倍数的最少......
  • 【题解】P5666 [CSP-S2019] 树的重心
    感觉对重心的理解更直观了一点。题意求一棵树上删去每一条边后两侧子树重心的编号和。\(n\leq3\times10^5\)思路神奇的清真数论。首先这里有一步很妙的操作:把整......
  • LeetCode 887. 鸡蛋掉落-题解分析
    题目来源887.鸡蛋掉落题目详情给你k枚相同的鸡蛋,并可以使用一栋从第1层到第n层共有n层楼的建筑。已知存在楼层f,满足 0<=f<=n,任何从高于f的楼层落......
  • re | [QCTF2018]Xman-babymips
    re|[QCTF2018]Xman-babymipsmips32架构的题目位运算,前5位直接xor,后面再加密一次。直接爆破就好exp:aim=[82,253,22,164,137,189,146,128,19,65,84,16......
  • P3829 题解
    题目传送门二维凸包模板传送门题目分析类似于凸包模板的一道题。我们循序渐进地考虑,当半径\(r=0\)时,显然是一个二位凸包模板。接着我们将圆弧加进去,仔细观察发现,我......
  • SYUCT第五次限时训练题解
    第五次限时训练题目大意及ac代码Maxmina题目大意accode#include<iostream>usingnamespacestd;intT,n,m;inta[55];intmain(){cin>>T;whil......
  • Atcoder ABC 284题解
    DHappyNewYear2023(枚举,时间复杂度计算)题意​ 给定\(n\\le\9\times10^{18}\),给出式子\(n=p^2\timesq\),该式子必定有解且有唯一解。请输出\(p\)和\(q\)......
  • Atcoder Beginner Contest ABC 284 Ex Count Unlabeled Graphs 题解 (Polya定理)
    题目链接弱化版(其实完全一样)u1s1,洛谷上这题的第一个题解写得很不错,可以参考直接边讲Polya定理边做这题问题引入:n颗珠子组成的手串,每颗珠子有两种不同的颜色,如果两......
  • Atcoder Beginner Contest ABC 284 Ex Count Unlabeled Graphs 题解 (Polya定理)
    题目链接弱化版(其实完全一样)u1s1,洛谷上这题的第一个题解写得很不错,可以参考直接边讲Polya定理边做这题问题引入:n颗珠子组成的手串,每颗珠子有两种不同的颜色,如果两......