611 字
3 分钟
【ACM 算法题单】等价变换相关问题

等价变换题目合集#

观光团买票难题#

题目链接

Problem Statement#

某单位共有 nn 个人,景区里一共有 mm 个项目。每个项目 ii 有两个正整数参数:折扣系数 KiK_i 和票价 BiB_i

购票规则如下:

  • 如果有 xx 个人买票游玩项目 ii ,则单张门票的价格为 max{BiKi×x,0}\max \{ B_i - K_i \times x, 0 \}
  • xx 个人游玩该项目的总花费为 x×max{BiKi×x,0}x \times \max \{ B_i - K_i \times x, 0 \} 。由于总花费不会为负数,实际计算公式为 max{x×(BiKi×x),0}\max \{ x \times (B_i - K_i \times x), 0 \}

单位里的每个人最多可以选择 11 个项目游玩,也可以不选任何项目。所有员工将在明晚提交他们的选择,然后由你统一购票。你需要准备足够多的钱,以应对所有可能的员工选择情况。请返回这个 “最保险” 的钱数(即在所有可能的分配方案中,单位总花费的最大值)。

Constraints#

  • 1m,n,Ki,Bi1051 \leq m, n, K_i, B_i \leq 10^5

Input#

输入包含多行:

  • 第一行包含两个整数 mmnn
  • 接下来的 mm 行,每行包含两个整数,分别表示第 ii 个项目的 KiK_iBiB_i

mnm \quad n

K1B1K_1 \quad B_1

K2B2K_2 \quad B_2

\ldots

KmBmK_m \quad B_m

Output#

输出一个整数,表示最保险的准备金额。

题目要点解析#

灌溉花园所需的最少水龙头数目#

题目链接

Problem Statement#

xx 轴上有一个长度为 nn 的花园,范围从 00nn

花园里安装了 n+1n + 1 个水龙头,分别位于 [0,1,,n][0, 1, \dots, n] 的位置。给你一个整数 nn 和一个长度为 n+1n + 1 的整数数组 ranges ,其中 ranges[i] 表示第 ii 个水龙头(位于 ii 处)的灌溉范围为 [iranges[i],i+ranges[i]][i - ranges[i], i + ranges[i]]

请你求出能够灌溉整个花园 [0,n][0, n] 所需的最少水龙头数目。如果花园无法被水龙头全灌溉,请返回 1-1

Constraints#

  • 1n1041 \leq n \leq 10^4
  • ranges.length==n+1ranges.length == n + 1
  • 0ranges[i]1000 \leq ranges[i] \leq 100

Input#

输入包含两行:

  • 第一行包含一个整数 nn
  • 第二行包含 n+1n + 1 个整数,表示数组 rangesranges 中的元素。

nn

ranges0ranges1rangesnranges_0 \quad ranges_1 \quad \ldots \quad ranges_n

Output#

输出一个整数,表示能够灌溉整个花园的最少水龙头数目。

Sample Input 1#

5
3 4 1 1 0 0

Sample Output 1#

1

Sample Input 2#

3
0 0 0 0

Sample Output 2#

-1

题目要点解析#

【ACM 算法题单】等价变换相关问题
https://xingguang641.com/posts/acm/acm-type/problem-solving/equivalent-substitution/
作者
星光
发布于
2026-05-08
许可协议
CC BY-NC-SA 4.0