CF1080

image

A.Petya and Origami

洛谷链接& CF 链接

有足够堆纸,每堆纸有 \(k\) 张,且一堆纸的颜色全部相同。问买多少堆纸可以获得 \(2n\) 张红纸、\(5n\) 张绿纸、\(8n\) 张蓝纸

直接输出 \(\lceil\frac{2n}{k}\rceil+\lceil\frac{5n}{k}\rceil+\lceil\frac{8n}{k}\rceil\) 即可

B.Margarite and the best present

洛谷链接& CF 链接

给出 \(q\) 次询问,每次给出 \(l,r\) 询问 \(\sum_{i=l}^r (-1)^i\times i\)\(1\leqslant q\leqslant 10^3,1\leqslant l\leqslant r\leqslant 10^9\)

可以将首项为奇数的等差数列与首项为偶数的等差数列分别求和再作差,也可以两两分组将序列简化成 “首项,-1,末项” 的形式求和

C.Masha and two friends

洛谷链接& CF 链接

给出 \(n\times m\) 的黑白相间的网格图,给出两个子矩阵后先后给两个矩阵染成全白/全黑色(第一个先染白,第二个后染黑),问最后分别有多少黑白格 \(t\in[1,3000],n,m\in[1,10^9]\)

若两个矩形不交那么它们不会互相影响,若有交,那么只会影响矩形交的白点统计数量,所以分别计算完后求出矩形交的原黑点数量并分别加减这个差值即可

D.Olya and magical square

洛谷链接& CF 链接

给出一个边长为 \(2^n\) 的正方形,与 \(k\) 次操作。每次操作可以选择一个长度大于 \(1\) 的正方形,并把其分为四个全等的小正方形。问是否存在一个方案使得给定正方形进行 \(k\) 次操作后有一条从左下角到右上角的、正方形边长相同且四联通的路径。\(n\in [1,10^9],k\in [1,10^{18}]\)

数据范围真是唬人。

首先可以想到路径形状其实并没那么重要,所以我们钦定合法路径是 左下角→左上角→右上角 。

显然 \(k\leqslant 10^{18}\)\(n\) 的范围有了极大的限制(操作次数指数级增加),通过计算发现 \(\frac{4^n-1}{3}\geqslant k\) ,即 \(n\geqslant 31\) 时一定可以在 \(k\) 次以内分割完正方形;所以当 \(n\geqslant 32\) 时,先在大正方形中分割一次、再分割右下角的正方形一定合法,输出 \(n-1\) 即可

\(n\leqslant 31\) 时,直接枚举路径上正方形的边长即可。若边长 \(2^{n-i}\) 合法,那么 \(k\) 一定大于等于构造出这条路径的步数并小于等于其他正方形分割到底的步数。这个下界为 \(\sum_{j=1}^i 2^j-1=2\times (2^i-1)-i\),上界把路径上正方形的次数减去即可,即 \(\frac{4^n-1}{3}-\frac{4^{n-i}-1}{3}\times (2^{i+1}-1)\)

E.Sonya and Matrix Beauty

洛谷链接& CF 链接

给出 \(n\times m\) 的字符串矩形,问有多少个子矩形在重排每一行的字符后每一行、每一列都是回文的 \(n,m\leqslant 250\)

没错,这是海亮作业里的题

一行重排之后是回文的当且仅当每种字符都出现了偶数次或恰好一种字符出现了奇数次,这可以状压判断;将一行信息哈希成一个元素,该矩阵的列是回文的当且仅当每行集合哈希值的序列是回文的,这可以用马拉车求。马拉车相当于枚举了一维,再枚举下子矩阵的左右边界即可。复杂度 \(O(n^3)\)

F.Katya and Segments Sets

洛谷链接& CF 链接

\(n\) 个可重线段集合,集合中的元素(线段)用 \([l,r]\) 表示。给出每个集合的所有元素与 \(m\) 次询问,每次询问给出 \(a,b,x,y\),询问区间 \([a,b]\) 的所有集合是否都存在线段满足 \(x\leqslant l\leqslant r\leqslant y\)\(1\leqslant n,m\leqslant 10^5,l,r\in[1,10^9]\)

神秘交互。下文用点对 \((l,r)\) 表示线段 \([l,r]\)

某一集合存在线段 \((l,r)\) 满足 \(x\leqslant l\leqslant r\leqslant y\) 的条件可以转变为 \(\{\forall(l,r)|r\leqslant y\},\max(l)\geqslant x\),若集合 \([a,b]\) 都满足这个条件,需要满足 \(\min\{max(l)\}\geqslant x\),即需要查询神秘最大值的最小值。考虑离线,插入所有 \(r\leqslant y\) 的线段,每个集合维护一个 \(\max(l)\),线段树维护其最小值就直接做做完了。

但是这题是(强)交(制)互(在)题(线),所以得用可持久化线段树搞下来所有版本的线段树再查询

后话

有些人写题写着写着就躺到了床上

posted @ 2025-08-29 17:50  沄沄沄  阅读(8)  评论(0)    收藏  举报