码迷,mamicode.com
首页 > 其他好文 > 详细

Maratona Brasileira de Popcorn( 二分答案+暴力 )

时间:2019-10-09 15:34:24      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:连续   efi   scan   str   asi   temp   开始   暴力   桌子   

技术图片

 

题意:输入三个数n,c,t 。 桌子上有n堆爆米花,每一堆有ai个, 现在有c个人一起吃爆米花,每人每分钟最多能吃t个爆米花,但有两个规定:1.一堆爆米花只能一个人吃, 2.每个人只能吃连续的若干堆爆米花。

AC代码:

 1 #include<bits/stdc++.h>
 2 
 3 using namespace std;
 4 #define int long long 
 5 #define N 100009
 6 #define inf 1<<30
 7 int arr[N];
 8 signed main(){
 9     int n,m,k;
10     cin>>n>>m>>k;int right=0;
11     for(int i=1;i<=n;i++){
12         scanf("%lld",&arr[i]);
13         right+=arr[i];
14     }
15     int left=1;
16     int ans=0;
17     while(left<=right){
18         int mid=(left+right)/2;
19         int cnt=1;// 注意开始人数为1
20         int temp=k*mid;
21         int sum=0;
22         for(int i=1;i<=n;i++){
23             if(arr[i]>temp)
24             {
25                 cnt=inf;
26                 break;
27             }
28             sum+=arr[i];
29             if(sum>temp){
30                 cnt++; 
31                 sum=arr[i];
32             }
33         }
34         if(cnt>m){
35             left=mid+1;
36         }else{
37             ans=mid;
38             right=mid-1;
39         }
40     }
41     printf("%lld\n",ans);
42     return 0;
43 }
44 
45 /*
46 5 3 4
47 5 8 3 10 7
48 */

 

Maratona Brasileira de Popcorn( 二分答案+暴力 )

标签:连续   efi   scan   str   asi   temp   开始   暴力   桌子   

原文地址:https://www.cnblogs.com/pengge666/p/11641801.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!