题目传送:
- 洛谷;
- CodeForces。
题目分析:
这题有 $3$ 大要点:
- 平均价一样 $2.5$ 分钟,只需满足尽量披萨数与人数差尽量小。
- $6,8,10$ 可以凑出所有大于等于 $6$ 的偶数。
转化一下:$3,4,5$ 可以凑出所有大于等于 $3$ 的整数,因为 $3,4$ 凑不出的最大数为 $5$,具体见洛谷 P3951。 - 语言特性:大部分编程语言做除法都是向下取整,所以数学上四舍五入 $a$ 除以 $b$ 等于编程语言中的
(a+1)/b
。
做题思路:
先特判:
$n < 6$ 是 $15$ 分钟;
$n \geq 6$ 时,输出 (n+1)/2*5
,(因为 $n$ 可能是奇数,所以要加 $1$),前面提到,这个 $\frac{n + 1}{2}$ 一定会被 $3,4,5$ 凑出来,然后把乘 $2.5$ 转化为除以 $2$ 乘 $5$(否则万一 $n+1$ 是奇数就玩完)。
AC 代码:
C++ 版:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
ll t;
cin>>t;
while(t--)
{
ll n;
cin>>n;
if(n<6)n=6;
cout<<(n+1)/2*5<<endl;
}
return 0;
}
Python 版:
t=int(input())
for tt in range(t):
n=int(input())
if n<6:
print(15)
else:
print((n+1)//2*5)