【A】数论

https://www.luogu.com.cn/article/cj96zuy7

类欧

给定 \(\mathtt{U,R}\),他们是有结合律的操作。有直线 \(y=\frac{ax+b}{c}\),用一个点在直线上跑,\(x\in (0,n]\)。当这条直线与横线有交点时往操作序列 pushback \(\mathtt{U}\),当与竖线有交点时 pushback \(\mathtt{R}\)
最后问操作序列的信息和。

\(f(a,b,c,n,\mathtt{U},\mathtt{R})\) 表示上述答案。

  • \(a\ge c\):递归 \(f(a\bmod c,b,c,n,\mathtt{U},\mathtt{U}^{\left\lfloor \frac{a}{c} \right\rfloor}\mathtt{R})\)
  • \(a<c\)
    \(i\)\(\mathtt{R}\) 前有 \(\left\lfloor\frac{ai+b}{c}\right\rfloor\)\(\mathtt{U}\)。那么可以推导第 \(j\)\(\mathtt{U}\) 前有第 \(i\)\(\mathtt{R}\)\(j> \left\lfloor \frac{ai+b}{c}\right\rfloor \Rightarrow \left\lfloor\frac{cj-b-1}{a}\right\rfloor\ge i\)
    \(C_{\mathtt U}=\left\lfloor \frac{an+b}{c} \right\rfloor\),也就是 \(\mathtt U\) 的数量。
    先把第一个 \(\mathtt{U}\) 和之前的 \(\left\lfloor \frac{c-b-1}{a} \right\rfloor\)\(\mathtt R\) 操作截掉,递归 \(f(c,c-b-1,a,C_{\mathtt U}-1,\mathtt{R},\mathtt{U})\),以及最后的 \(n-\left\lfloor \frac{c\times C_{\mathtt U}-b-1}{a}\right\rfloor\)\(\mathtt R\)
info F(LL a,LL b,LL c,LL n,info U,info R)
{
	if(!n) return {};
	if(a>=c) return F(a%c,b,c,n,U,ksm(U,a/c)+R);
	LL cnt=((__int128)a*n+b)/c;
	if(!cnt) return ksm(R,n);
	return ksm(R,(c-b-1)/a)+U+F(c,(c-b-1)%a,a,cnt-1,R,U)+ksm(R,n-((__int128)c*cnt-b-1)/a);
}

好像 AT 的题比较多。

QOJ5518 Binary Arrays and Sliding Sums

\(f(a)\to a\) 的映射:\(f(a)_i-f(a)_{i-1}=a_{i}-a_{i-k}\),按照这个 \(k\) 的循环分组,也就是 \(\gcd(n,k)\) 组。
每组内全 0 或者全 1 是无法区分的,其余是可以区分的。
而全 0 和全 1 的区别是给 \(f(a)\) 整体加上一个值,所以我们只关心有多少个这样的组。

\(g=\gcd(n,k)\)。枚举全 0 或 全 1 的组:
\(ans=\sum_{i=0}^{g} \binom{g}{i}(i+1)(2^{n/g}-2)^{g-i}\)

QOJ11549 Inverse Knapsack

https://qoj.ac/problem/11549/discussion/1112

LOJ6179 Pyh 的求和

https://www.cnblogs.com/TalBana/p/19101756

P15367 秋季限定生成树问题

  • 结论:点 \(i\) 会选择连向 \(i<j,\gcd(i,j)=1\) 中的最大的 \(j\)

证明:

首先所有的 \(ki+1\) 都和 \(i\) 互质,如果存在某条边 \(\gcd(i,j)\ne 1\)

  • \(j<\left\lfloor\frac{n}{i}\right\rfloor i+1\),则一定不如连 \(\left\lfloor\frac{n}{i}\right\rfloor i+1\)
  • 否则 \(\gcd(i,j)\) 至少为 2,他也不会大于 \(\left\lfloor\frac{n}{i}\right\rfloor i+1\) 的贡献。

而所有的 \(\gcd(i,j)=1\),我们一定取最大的。同时树形结构也得到保证。

\[\begin{aligned} \sum_{i=1}^{n-1} i\times fa(i) =&\sum_{i=1}^{n-1} in-\sum_{i,v\le n} i[fa(i)<v] \\ \sum_{i,v\le n} i[fa(i)<v] =& \sum_{i,v} i \prod_{j=v}^n (1-[\gcd(i,j)=1]) \\ =& \sum_{i,v} i \prod_{j=v}^n (1-\sum_{d|i,d|j} \mu(d)) \\ =& \sum_{i,v} i \prod_{j=v}^n (-\sum_{d|j,d>1} [d|i]\mu(d)) \\ \end{aligned} \]

显然 $n-v\le $ Prime Gap,所以只用枚举 \(O(\log n)\)\(v\),从大往小暴搜每个 \(v\) 选择的 \(d\)
优化:设当前 \(\operatorname{LCM}(d)=L\),若当前 \(v\)\(L\) 不互质,一定有 \(\gcd(i,v)>1\),所以可以直接跳过。

P16637 春季限定独立集问题

树上独立集贪心:深度从大往小选择,若存在儿子被选择就不选,否则选。
考虑一个点子树只和 \(\left\lfloor\frac{n}{i}\right\rfloor,m_i\) 相关,当 \(m_i\) 越大他的儿子越多。所以肯定是有一个 \(f_{n/i}\),当 \(m_i\le f_{n/i}\)\(i\) 在独立集内,否则在独立集外。
考虑找到一个最小的 \(p\le \min(i,n/i)\),使得 \(p\le f_{n/i/p}\),则 \(ip\) 这个儿子就是会被选择的。
不考虑 \(f\) 的性质可以 \(O(n^{3/4})\) 求所有的 \(f\),但是其实 \(f\) 很小可以暴力求。
接下来就是 min25 做的事情了,时间复杂度 \(O(\frac{n^{3/4}}{\log n})\)

QOJ8076 Magical Pair

\(x,y\) 都是 \(n\) 的倍数是好处理的。剩下的情况考虑 \(x\bmod n,x\bmod (n-1),y\bmod n,y\bmod (n-1)\) 这四元组唯一对应了给定范围内的 \((x,y)\),所以转为计数 \(a^b\equiv c^d \pmod n\)。那么计数 \(o_v=\sum_{a,b} a^b\),两边同时取 \(\log\)\(\log v\equiv b\log a\),然后就变成 \(v'\equiv ab \pmod {n-1}\),其中 \(a,b< n-1\)

QOJ14973 Welcome to Math Kingdom!

先令 \(a=c=1\)
\(\frac{1+b^3}{1+d^3}=\frac{p}{q}\)\(\frac{(b+1)(b^2-b+1)}{(d+1)(d^2-d+1)}=\frac{kp\times 1}{kq\times 1}\),则 \(b^2-b+1=d^2-d+1\Rightarrow b+d=1\)
\(k=\frac{3}{p+q}\),同时乘上 \(p+q\) 得到 \(b=3p-(p+q)=2p-q,d=3q-(p+q)=2q-p,a=p+q,c=p+q\)
如果 \(\frac{1}{2}< \frac{p}{q} < 2\) 则这个解是合法的。

否则考虑调整。不妨设 \(p\le q\),当 \(\frac{p}{q}\le \frac{1}{2}\) 时让 \(p\leftarrow 8p\)。当 \(\frac{p}{q}\ge 2\) 时让 \(p\leftarrow 8p,q\leftarrow 27q\)

QOJ11623 Construct Point

Sol I:类欧+二分。
Sol II:先令 \(C\) 为原点,然后我们可以给坐标轴变换:\(x'\leftarrow x,y\leftarrow y-kx\),其中 \(k\) 是整数。
这样让 \(A\) 变换到 \((a,0)\),然后让 \(B\)\(x'\leftarrow x-ky,y'\leftarrow y\),这样 \(A\) 不变而 \(B(c,d)\) 满足 \(0\le c<d\),现在检查 \((1,1)\) 即可。

P11422 [清华集训 2024] 平原

考虑先二分 \(L(0),L(V)\) 的范围,然后现在是在一个平行四边形内找直线。
考虑 \(a_0< L(0)<a_1,b_0<L(V)<b_1\),我们在这个平行四边形内的 \(y=a_1\)\(y=b_0\) 上分别二分两个点继续缩小直线的范围。
类似这样一直做子问题。
令我们这个平行四边形的最小外接矩形大小是 \((n,m)\),你可以先做对 \(y\leftarrow y-kx\) 的线性变换使得 \(m\le n\),然后若 \(m>\frac{n}{2}\) 可以继续做 \(y\leftarrow y-x\)
这下你做到 \(m=1\) 就区分了所有点。
把问过的点拉出来跑上下凸包然后枚举切线判定。

QOJ8706 解方程

P14858 It’ s Surely Complex

posted @ 2026-08-05 08:31  TallBanana  阅读(8)  评论(0)    收藏  举报