题解 | #春游#
春游
https://ac.nowcoder.com/acm/problem/219035
思路
贪心
过程
代码
#include <iostream>
#include <climits>
using namespace std;
typedef long long LL;
LL t, n, a, b;
int main()
{
cin >> t;
while(t --)
{
cin >> n >> a >> b;
if(n <= 2) cout << min(a, b) << endl;
else
{
LL ans = 0;
if(3 * a < 2 * b) // 优选选择2人船
{
if(n % 2) ans = (n / 2 - 1) * a + min(2 * a, b);
else ans = n / 2 * a;
}
else // 优先选择3人船
{
if(n % 3 == 1) ans = (n / 3 - 1) * b + min(a + b, min(2 * b, 2 * a));
else if(n % 3 == 2) ans = (n / 3 - 1) * b + min(a + b, min(2 * b, 3 * a));
else ans = n / 3 * b;
}
cout << ans << endl;
}
}
return 0;
}