NOIP20240816

NOIP20240816

T1 解方程

  • 题意:给定非负整数 \(n\),需要找到两个正整数 \(x\)\(y\),使得 \(x^2 - y^2 = n\)。。

  • 题解:由题可知 \((x+y)(x−y)=n\),可以得出:\(x+y\)\(x−y\) 奇偶性相同。

    于是,可以将 \(n\) 的奇偶性进行划分:

  • \(n\) 为奇数,

    \((x+y),(x−y)\) 各为 \(1,n\) 时成立。

  • \(n\) 为偶数,\(x=n\div2\)

    \(x\) 为奇数为 No(无法划分成奇偶性相同的两块);

    \(x\) 为偶数则为 Yes

注意:当 \(n=0,1,4\) 时需要特判!

T2 毕业相册

  • 题意:将潘奕帆分组,使得每组的潘奕帆数量不超过三个,并且每组都符合以下规则:
    • 如果组内有两个潘奕帆,两个潘奕帆之间的高度差不得超过 \(20\) cm。
    • 如果组内有三个潘奕帆,最高和最矮的高度差不得超过 \(10\) cm。
    • 目标是将所有潘奕帆分组,使得组数尽可能少。
  • 题解:简单的 dp
  • 代码

T3 DQY 的礼物

  • 题意:给定四根正整数长度的魔法棍 \(a,b,c,d\),可以将它们拆分成若干根长度相等的棍子,问能组成的最大矩形的长宽分别是多少?如果有多个可能的答案,输出其中一个即可。
  • 题解:分为五种情况讨论
    • 通过打断一根棍子获得所有四个侧面。
    • 每一面都从一根棍子获得。
    • 从一根棍子获得两个侧面,从第二根棍子获得两个侧面。
    • 从一根棍子获得三面,从第二根棍子获得一面。
    • 一根棍子可得到两个侧面,另外两个棍子可得到另外两个侧面。
    • 使用 __int128
  • 代码

T4 DQY 的探险

  • 题意:
    • 有一个大小为 \(n \times m\) 的矩阵,每个格子上有一个能力值 \(a_{i,j}(1 \leq a_{i,j} \leq 10^9)\)
    • 你从左上角 \((1,1)\) 出发,只能往下或往右移动,最终到达右下角 \((n,m)\),路径上的能力值会累加。
    • 对手可以选择一个除左上角和右下角外的任意格子,将其封锁(即该格子不能经过)。
    • 你的目标是在对手采取最优策略封锁格子后,找到一条路径,使得累加的能力值最大化。
  • 题解:预处理出从左上到右下的,在预处理出右下到左上的 ,枚举每一条左斜线,去掉最大的点,选择第二大的点,统计答案即可。
  • 代码

T5 hby 的毁灭攻击

  • 题意:给定一个 $ r \times c $ 的矩阵,矩阵中的某个格子最初被召唤了潘奕帆(初始位置为 \((x, y)\)),每秒钟潘奕帆会向其相邻的格子扩散。求整个矩阵被潘奕帆全部充满所需要的时间。

  • 不会,思路是二分加线段树加扫描线。

posted @ 2024-08-23 12:05  liukejie  阅读(2)  评论(0编辑  收藏  举报