P7777 『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](https://www.bilibili.com/video/BV1ys41147Gv)
---
题目描述
Rin 和爸爸还在地球上时,他们经常玩一个石子游戏。
爸爸摆出了 $n$ 堆石子,这 $n$ 堆石子编号为 $1$ 到 $n$。
游戏规则是这样的,每次 Rin 可以抓取石子,有两种抓取方式:
- 选择一个数 $i$,把第 $i$ 堆石子抓取走,代价为 $i \times p$。
- 选择两个数 $i,j$,把第 $i$ 堆和第 $j$ 堆石子抓走,代价为 $|i-j| \times q$。
其中 $p,q$ 为爸爸提前定好的常数。
Rin 想知道,抓取完所有石子至少需要多少代价。
还剩 1919810114514 秒第三行星的灾难就要降临了,爸爸还需要 1919810114513.7 秒的时间把 Rin 安放到驾驶舱里,并启动机器让 Rin 进入 “Shelter” 里,因此,你只有 0.3 秒的时间帮助 Rin 算出这个结果哦!
输入格式
**本题多测**,第一行一个整数 $T$ 代表数据组数。
接下来 $t$ 行,每行三个整数 $n,p,q$ 代表石子堆数,和两个常数。
输出格式
$T$ 行每行一个整数代表答案。
说明/提示
#### 样例 1 解释
第一组数据:
1. 利用第一个操作,拿走第 $1$ 堆石子,代价为 $1 \times 2=2$。
2. 利用第二个操作,拿走第 $2,3$ 堆石子,代价为 $|2-3| \times 3=3$。
3. 利用第二个操作,拿走第 $4,5$ 堆石子,代价为 $|4-5| \times 3=3$。
最小代价为 $2+3+3=8$。
第二组数据:
1. 利用第一个操作,拿走第 $1$ 堆石子,代价为 $1 \times 1=1$。
2. 利用第一个操作,拿走第 $2$ 堆石子,代价为 $2 \times 1=2$。
3. 利用第二个操作,拿走第 $3,4$ 堆石子,代价为 $|3-4| \times 5=5$。
最小代价为 $1+2+5=8$。
#### 数据规模与约定
**本题采用捆绑测试。**
- Subtask 1(1 pts):$p,q =0$。
- Subtask 2(1 pts):$n=1$。
- Subtask 3(30 pts):$T \le 5 \times 10^4$,$n \le 5 \times 10^5$。
- Subtask 4(33 pts):$T \le 10^6$,$n \le 5 \times 10^5$。
- Subtask 5(35 pts):无特殊限制。
对于 $100\%$ 的数据,$1 \le n \le 10^9$,$0 \le p,q \le 100$,$1 \le T \le 10^6$。
附件中的 Extra Example 满足 $T=10^4$,可供调试使用。
-----
Source:[JROI-2 Summer Fun Round](https://www.luogu.com.cn/contest/30241) - T1
Idea&Sol:[一只书虫仔](/user/114914)
Std&Data:[Tony2](/user/171288)
Retest:[Cocoly1990](/user/183026)