CSP2024-24

2A#

题意:给定长度为 n 的非负整数数组 a,求最小的 rl+1 满足 lr,i=lrai 是合数。

考虑全是正数的情况,答案一定 4,考虑一下每个数的奇偶性即可。

那么就把所有正数及其位置存下来,使得 bi=api,暴力检查 b 中长度为 2/3 的段,和 pi+3pi+1 取 min。submission

A#

题意:给定数组 a,b,设 fi(x)=max(x+ai,bix)。每次给出 l,r,x,求 fr(fr1(fl(x)))modp

如果 bi=1,肯定选 x+ai;否则需要决策哪个更大,注意到当 x>p 时一定是 bix 更大。

因此暴力跳 logpbi>1 的位置, 然后线段树维护一次函数复合得到剩余部分。submission

B#

题意:给出 nq 次询问。求边长为有理数且四个顶点均为两个坐标均在 [1,n] 内的整点且其中一个坐标为 (x,y) 的正方形个数。

边长不是整数就是无理数。考虑边与坐标轴不平行的情况。

补全下图红色正方形,四角是全等的勾股三角形。当 (x,y) 作为该正方形最上面的角时,(a,b) 回到一个矩形区域有 1 的贡献(灰色)。

其他三个角同理。如果 a+b<n 的勾股数对数足够小,那么直接枚举,做若干矩形覆盖,这是经典的二维数点问题。

考虑勾股数 a2+b2=c2,设 x=c+b, y=cb

a=xy, b=xy2, c=x+y2

枚举所有正整数 x,y 可以生成所有勾股数。

n=x2, m=y2

a=2nm, b=n2m2, c=n2+m2

枚举所有正实数 n,m 可以生成所有勾股数。

考虑本源勾股数 (a,b,c),满足 a,b,c 两两互质,其他勾股数都能用 (ka,kb,kc) 表示。

其中,一定有 a,b 一奇一偶:都是偶数,有公因子;两奇,则 c 是偶数,a2+b2c2(mod4),矛盾。

如果 ab 奇,则 x,y 都是偶数,又因为 b,c 互质,所以 x2,y2 互质。又由于 nm 是整数,n,m 只能都是整数。

如果 ab 偶,x,y 都是奇数,n,m 不可能是整数。

枚举正整数 n,m,可以生成所有本源勾股数 (a,b,c) 恰好一次。

c=a2+b2<a+b<Nn2+m2=cNn,mN,只有 O(N) 对。

对于 (ka,kb,kc) 必须满足 kNa+ba+b 相同的本源勾股数应该只有 O(1) 对,最后会生成 O(NlogN) 对勾股数。

submission

C#

题意:

D#

posted @   Lu_xZ  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示