zoukankan      html  css  js  c++  java
  • 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 */
  • 相关阅读:
    0808 HTML 基础
    2016.8.3 C#基础 结构体,枚举类型
    2016.8.1 C#基础 传值
    2016.7.22
    2016.7.20
    2016.7.31C#基础 函数
    2016.07.30C#基础 特殊集合
    2016.7.28C#基础 集合
    个人项目网页3
    个人项目网页2
  • 原文地址:https://www.cnblogs.com/pengge666/p/11641801.html
Copyright © 2011-2022 走看看