题目传送:

题目分析:

这题有 $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)
最后修改:2023 年 04 月 20 日
v我50吃疯狂星期四