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

Posted pengge666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maratona Brasileira de Popcorn( 二分答案+暴力 )相关的知识,希望对你有一定的参考价值。

技术图片

 

题意:输入三个数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
",ans);
42     return 0;
43 }
44 
45 /*
46 5 3 4
47 5 8 3 10 7
48 */

 

以上是关于Maratona Brasileira de Popcorn( 二分答案+暴力 )的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE EBS ASN入库事务处理开发接口案例

用msgmerge更新多个文件

wordpress 插件翻译不起作用

学习第五天

.Mo翻译文件结构解析

po啥意思 po是啥意思