【比赛记录】PKUSAA

\(A:\)

题意:区间加一,询问区间颜色数目。

\(35pts:\)

考虑用 bitset 维护颜色,用 \(st\)表 做到一个 \(\log\) 预处理以及 \(O(1)\) 回答询问,合并答案 \(O(\frac{n}{w}).\)

\(100pts:\)

答案中可能出现的数只有 \([1,n+1]\)

对于 \(i\) ,若不出现,则:

  • 区间把它所有出现位置都覆盖掉了

  • 不能被 \(i-1\) 的位置占到。

转化成 \(k+1\) 个不相交的矩形,题目就是 \(n\) 次矩形加以及 \(m\) 次单点查了。

\(B:\)

\(B++\) 编写程序。

\(C:\)

求形如 \(xxxll\) 的子序列出现次数恰好为 \(K\) d的最短序列长度。

对于 \(x\) 的贡献,其数目大概是 \(O(len^5)\) 故而答案一定长度不大。

答案一定形如 \(xx...ll\)

\(x\) 的出现次数是小于 \(n^{1/3}\) \(l\) 的出现次数小于 \(n^{1/2}\)

\(dp[i][j][k]\) 表示第 \(i\)\(x,\)\(j\)\(l\) 已经有了 \(k\) 个数目的答案。

对于 \(x\) 转移:

\([1,10^5]\) 答案最大 \(37\)

于是复杂度 \(O(37^2\cdot 10^5)\)

\(D:\)

AI打德州扑克。

\(E:\)

给定乱码程序以及输入输出样例,试还原程序。

\(35pts:\)

直接硬拼代码即可。

\(100pts:\)

先把代码拼成只剩表的程度,观察到实际上是在拿输入和表中异或取最大值,考虑根据输入输出逆向推表即可。

每次取了 \(A_i xor B_i\) 的最大值。想办法接表。

首先可以看出一个数能不能被拼起来。 然后考虑根据输入输出来反向构造出 \(A\)

然后把不会出现的给剔除,剩下的就是把位置还原了。

\(F:\)

给定若干成员函数和修饰符,问合法方案数。

大学生做不出来……就不是特别好)

给了 \(n\) 个类,关系是一棵树,需要补全函数调用以及标识符。

类里面,有 public protect private

有一堆乱七八糟继承规则,形成树。

\(f[i][j]\) 是以 \(i\) 为根的子树,有 \(j\) 个 pub \(k\)个pro没解决的方案数。

合并到 \(j+,k+\)

就是个树 dp 复杂度大概 \(O(n^4)\)

空间是 \(300*300*500\)\(3G\) 空间。

省空间:做树剖,使得重链被最后计算。省掉一个 \(n\) 换成一个 \(\log\).

\(G:\)

G

\(H:\)

H

给字典,以及文本,用字典给文本分词

真的字典,以及真的哈利波特串

尽量最大化 \(f(D/w)\)

\(f[i]\) 表示

\(f[i]=\min [i-j,j]\in D,f[j-1]+1\)

k=2: 猜答案: the,harry

k=200: 字典几十万,可以先把一种分词方案求出来,大概用了三万的单词。

于是从这里面试即可。能暴力跑出来。

正解: A star 搜索。用估价函数,用原方案数减去单词出现次数再加上出现次数乘以去掉它后所有单词的最少个数来估价,跑大概几分钟即可。

\(I:\)

I

\(35pts:\)

考虑从网上找到一个 \(24\) 点计算器来手算即可。

\(100pts:\)

直接暴力,因为一共只有 \(13^4\) 个。

答案大概是 \([169,13/2]\)

\(J:\)

J

全场一血。完全没看懂)

做不出来挨打

b与c的异或是两个变量,

其他的位运算是变量和常数。

这就是关键。

异或:位置的线性组合,答案是64位数组。xor是线性变换。

\(m\times m\) 的矩阵方序列一定有线性递推式。

凯莱哈密尔顿定理:

于是可以矩阵加速递推。

\(K:\)

K

对序列 \(1,1,4,5,1,4,1,1,4,5,1,4,1,1....\)

找到一个位置,并随意选择符号使得运算结果是 \(k\)

\(f[i][j]\)\(i\) 项是不是能凑出 \(j.\)

于是可以 \(N^2\) 做。

只需知道 \(i+1\) 的位置。

观察到序列的循环节是 \(6\)

\(f[i][j]\) 表示 \(n \bmod 6=i\) 凑出 \(j\) 最小的 \(n.\)

由于有很多一段都是要全选的,所以选择很小一段微调,剩下的用上述做法。

\(L:\)

L

\(M:\)

M

求方差尽量大。

平均值是确定的,题目转化为最大化 \(\sum A_i^2\)

对它排序后,贪心,取尽量大的 \(A_1\) 让它有解,再取尽量大的 \(A_2\) 满足有解……

证:若\(A_1\)不是最大,可以调整成 \(A_1\) 最大。

\(O(n)\to O(n\log n)\)

热身:

N

考虑百度即可。

posted @ 2021-07-11 21:54  Refined_heart  阅读(40)  评论(0编辑  收藏  举报