ZOJ 3778 Talented Chef

时间:2023-03-08 18:41:02
ZOJ 3778 Talented Chef

题目链接

题意 : 这个人需要做n道菜,每道菜Ai步,他可以同时做M道不同的菜的其中一步,问你最少需要多少时间能做完所有的菜。

思路 : 这个题比赛的时候禁锢思路了,根本没想出来,就是当M > N时,需要的时间一定是N道菜里边步骤最多的那道菜的步骤数。如果不是就判断平均需要的时间,如果平均需要的时间不如最多步骤多,那还是步骤数,否则就是平均时间。

 #include <iostream>
#include <stdio.h>
#include <string.h> using namespace std; int a[] ; int main()
{
int n,t,m ;
scanf("%d",&t);
while(t--)
{
scanf("%d %d",&n,&m) ;
int sum = ;
int maxx = ;
for(int i = ; i <= n ; i++)
{
scanf("%d",&a[i]) ;
sum += a[i] ;
maxx = max(maxx,a[i]) ;
}
int temp = sum/m ;
if(sum % m)
temp++ ;
if(temp <= maxx)
temp = maxx ;
printf("%lld\n",temp) ;
}
return ;
}