C. 赛尔逵传说

Codeforces
IDCF10217C
Time1000ms
Memory256MB
Difficulty
English · Original
Formal · Original
天天最近买了一台思维吃来玩赛尔逵传说。 赛尔逵传说需要玩家扮演近侍骑士森克从恶魔噶里嗷的手里救下赛尔逵公主。但是救出公主的路途异常艰险,噶里嗷在去城堡的路途上设置了 $n$ 只怪兽来阻挡森克,这 $n$ 只怪兽分别编号从 $1$ 到 $n$。其中第 $i$ 只怪兽血量为 $d_i$ 攻击力为 $x_i$。 已知森克的攻击力为 $k$,他将按顺序轮流与这些怪兽进行若干次回合制战斗。在回合制战斗中,被攻击者会损失攻击者攻击力大小的血量,当被攻击者血量掉到 $0$ 及以下就会立即死亡。每个回合都由森克主动对怪兽发起一次攻击(森克始终先手攻击怪兽),如果怪兽尚未死亡,那么它在本回合就会立即反击森克一次,即森克被攻击后损失该只怪兽攻击力大小的血量,如此循环直到其中某一战斗方死亡为止。 森克为了确保能救出公主,提前准备了 $c$ 份"力量炖水果",每份"力量炖水果"都可以在瞬间吃下并使森克*本回合临时增加 $k$ 点攻击力*,而且一回合内森克可以连续吃许多份"力量炖水果"。请问,森克如果想要救下赛尔逵公主的话,最少需要消耗多少血量呢? 输入共 $n + 1$ 行,第一行输入三个正整数 $n, k, c " "(1 <= n <= 10^5, 1 <= k, c <= 10^6)$ 由空格间隔开,分别表示怪物数 $n$,森克的攻击力 $k$ 与他烹饪的"力量炖水果"数量 $c$。 接下来 $n$ 行,第 $i$ 行输入两个正整数 $d_i$ 和 $x_i " "(1 <= d_i, x_i <= 10^6)$,分别描述第 $i$ 只怪兽的血量与攻击力。 请输出一个非负整数,表示森克救下公主最少消耗的血量。 对于第一组样例,第一回合森克可以连吃三份"力量炖水果",获得三倍的攻击加成,此时他的攻击力达到 $20$ 点,本回合将怪兽打到只剩 $1$ 点血量,同时本回合他也受到了来自怪兽的 $3$ 点伤害。第二回合,森克的攻击加成消失,而且也没有"力量炖水果"可以吃了,所以他的攻击力回退到 $5$,但是由于怪兽仅剩 $1$ 点血量,而且森克先手,所以他本回合可以直接将怪兽打死,不用承受本回合怪兽的伤害。因此,打完这只怪兽,森克承受的总伤害为 $3$ 点,即他至少需要消耗 $3$ 点血量才能救下公主。 ## Input 输入共 $n + 1$ 行,第一行输入三个正整数 $n, k, c " "(1 <= n <= 10^5, 1 <= k, c <= 10^6)$ 由空格间隔开,分别表示怪物数 $n$,森克的攻击力 $k$ 与他烹饪的"力量炖水果"数量 $c$。接下来 $n$ 行,第 $i$ 行输入两个正整数 $d_i$ 和 $x_i " "(1 <= d_i, x_i <= 10^6)$,分别描述第 $i$ 只怪兽的血量与攻击力。 ## Output 请输出一个非负整数,表示森克救下公主最少消耗的血量。 [samples] ## Note 对于第一组样例,第一回合森克可以连吃三份"力量炖水果",获得三倍的攻击加成,此时他的攻击力达到 $20$ 点,本回合将怪兽打到只剩 $1$ 点血量,同时本回合他也受到了来自怪兽的 $3$ 点伤害。第二回合,森克的攻击加成消失,而且也没有"力量炖水果"可以吃了,所以他的攻击力回退到 $5$,但是由于怪兽仅剩 $1$ 点血量,而且森克先手,所以他本回合可以直接将怪兽打死,不用承受本回合怪兽的伤害。因此,打完这只怪兽,森克承受的总伤害为 $3$ 点,即他至少需要消耗 $3$ 点血量才能救下公主。
**Definitions** Let $ n, k, c \in \mathbb{Z}^+ $ denote the number of monsters, base attack power of Senc, and number of "Power Stew Fruits" available, respectively. For each monster $ i \in \{1, \dots, n\} $, let $ d_i \in \mathbb{Z}^+ $ be its health and $ x_i \in \mathbb{Z}^+ $ its attack power. Let $ a_i \in \mathbb{Z}_{\geq 0} $ denote the number of "Power Stew Fruits" used against monster $ i $, such that $ \sum_{i=1}^n a_i \leq c $. The effective attack power of Senc against monster $ i $ is $ k_i = k + a_i \cdot k = k(1 + a_i) $. **Constraints** 1. $ 1 \leq n \leq 10^5 $ 2. $ 1 \leq k, c \leq 10^6 $ 3. $ 1 \leq d_i, x_i \leq 10^6 $ for all $ i \in \{1, \dots, n\} $ 4. $ a_i \in \mathbb{Z}_{\geq 0} $ and $ \sum_{i=1}^n a_i \leq c $ **Objective** Minimize the total health loss of Senc: $$ \sum_{i=1}^n \text{damage}_i $$ where for each monster $ i $, the damage taken $ \text{damage}_i $ is computed as: - Let $ r_i = \left\lceil \frac{d_i}{k(1 + a_i)} \right\rceil $ be the number of rounds needed to kill monster $ i $. - If $ r_i \geq 1 $, then Senc takes $ x_i \cdot (r_i - 1) $ damage (since he attacks first, the monster retaliates only in the first $ r_i - 1 $ rounds). Thus, $$ \text{damage}_i = \begin{cases} 0 & \text{if } r_i = 0 \\ x_i \cdot (r_i - 1) & \text{if } r_i \geq 1 \end{cases} = x_i \cdot \max\left(0, \left\lceil \frac{d_i}{k(1 + a_i)} \right\rceil - 1\right) $$ Minimize $ \sum_{i=1}^n x_i \cdot \max\left(0, \left\lceil \frac{d_i}{k(1 + a_i)} \right\rceil - 1\right) $ subject to $ \sum_{i=1}^n a_i \leq c $ and $ a_i \in \mathbb{Z}_{\geq 0} $.
API Response (JSON)
{
  "problem": {
    "name": "C. 赛尔逵传说",
    "description": {
      "content": "天天最近买了一台思维吃来玩赛尔逵传说。 赛尔逵传说需要玩家扮演近侍骑士森克从恶魔噶里嗷的手里救下赛尔逵公主。但是救出公主的路途异常艰险,噶里嗷在去城堡的路途上设置了 $n$ 只怪兽来阻挡森克,这 $n$ 只怪兽分别编号从 $1$ 到 $n$。其中第 $i$ 只怪兽血量为 $d_i$ 攻击力为 $x_i$。 已知森克的攻击力为 $k$,他将按顺序轮流与这些怪兽进行若干次回合制战斗。在回合制战斗中",
      "description_type": "Markdown"
    },
    "platform": "Codeforces",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "CF10217C"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "天天最近买了一台思维吃来玩赛尔逵传说。\n\n赛尔逵传说需要玩家扮演近侍骑士森克从恶魔噶里嗷的手里救下赛尔逵公主。但是救出公主的路途异常艰险,噶里嗷在去城堡的路途上设置了 $n$ 只怪兽来阻挡森克,这 $n$ 只怪兽分别编号从 $1$ 到 $n$。其中第 $i$ 只怪兽血量为 $d_i$ 攻击力为 $x_i$。\n\n已知森克的攻击力为 $k$,他将按顺序轮流与这些怪兽进行若干次回合制战斗。在回合制战斗中...",
      "is_translate": false,
      "language": "English"
    },
    {
      "statement_type": "Markdown",
      "content": "**Definitions**  \nLet $ n, k, c \\in \\mathbb{Z}^+ $ denote the number of monsters, base attack power of Senc, and number of \"Power Stew Fruits\" available, respectively.  \nFor each monster $ i \\in \\{1, ...",
      "is_translate": false,
      "language": "Formal"
    }
  ]
}
Full JSON Raw Segments