#P7777. 『JROI-2』Shelter

『JROI-2』Shelter

题目背景

And it's a long way forward
So trust in me
I'll give them shelter like you've done for me
And I know, I'm not alone
You'll be watching over us
Until ...

一个小女孩斜躺在一个驾驶舱的椅子上,长发从肩膀上飘落到地上。
她的嘴角绽放出微笑,身旁的显示屏写着 “返回 第三行星”。
她怀里的泰迪熊身上写着她的名字,Rin。

—— Shelter


题目描述

Rin 和爸爸还在地球上时,他们经常玩一个石子游戏。

爸爸摆出了 nn 堆石子,这 nn 堆石子编号为 11nn

游戏规则是这样的,每次 Rin 可以抓取石子,有两种抓取方式:

  • 选择一个数 ii,把第 ii 堆石子抓取走,代价为 i×pi \times p
  • 选择两个数 i,ji,j,把第 ii 堆和第 jj 堆石子抓走,代价为 ij×q|i-j| \times q

其中 p,qp,q 为爸爸提前定好的常数。

Rin 想知道,抓取完所有石子至少需要多少代价。

还剩 1919810114514 秒第三行星的灾难就要降临了,爸爸还需要 1919810114513.7 秒的时间把 Rin 安放到驾驶舱里,并启动机器让 Rin 进入 “Shelter” 里,因此,你只有 0.3 秒的时间帮助 Rin 算出这个结果哦!

输入格式

本题多测,第一行一个整数 TT 代表数据组数。
接下来 tt 行,每行三个整数 n,p,qn,p,q 代表石子堆数,和两个常数。

输出格式

TT 行每行一个整数代表答案。

2
5 2 3
4 1 5
8
8

提示

样例 1 解释

第一组数据:

  1. 利用第一个操作,拿走第 11 堆石子,代价为 1×2=21 \times 2=2
  2. 利用第二个操作,拿走第 2,32,3 堆石子,代价为 23×3=3|2-3| \times 3=3
  3. 利用第二个操作,拿走第 4,54,5 堆石子,代价为 45×3=3|4-5| \times 3=3

最小代价为 2+3+3=82+3+3=8

第二组数据:

  1. 利用第一个操作,拿走第 11 堆石子,代价为 1×1=11 \times 1=1
  2. 利用第一个操作,拿走第 22 堆石子,代价为 2×1=22 \times 1=2
  3. 利用第二个操作,拿走第 3,43,4 堆石子,代价为 34×5=5|3-4| \times 5=5

最小代价为 1+2+5=81+2+5=8

数据规模与约定

本题采用捆绑测试。

  • Subtask 1(1 pts):p,q=0p,q =0
  • Subtask 2(1 pts):n=1n=1
  • Subtask 3(30 pts):T5×104T \le 5 \times 10^4n5×105n \le 5 \times 10^5
  • Subtask 4(33 pts):T106T \le 10^6n5×105n \le 5 \times 10^5
  • Subtask 5(35 pts):无特殊限制。

对于 100%100\% 的数据,1n1091 \le n \le 10^90p,q1000 \le p,q \le 1001T1061 \le T \le 10^6

附件中的 Extra Example 满足 T=104T=10^4,可供调试使用。


Source:JROI-2 Summer Fun Round - T1

Idea&Sol:一只书虫仔

Std&Data:Tony2

Retest:Cocoly1990