zoukankan      html  css  js  c++  java
  • Binary Search

    题目:

    348A.Mafia 

    tips:逆向思维,已知想玩的局数,则可推知最大当裁判的数量,裁判总数大于假定局数k,则k左移。因为要求临界值,所以二分(?);r是莽设的,非已知;注意r传过去时,要开ll. return l/r都行。

     1 #include<bits/stdc++.h>
     2 #define mem(a) memset(a,0,sizeof(a))
     3 #define ll long long
     4 #define inf 0x3f3f3f3f
     5 const int N=2e5+5;
     6 const int M=1e3+10;
     7 using namespace std;
     8 int mod=1e9+7;
     9 ll Mod=500;
    10 ll n;
    11 ll a[N],maxa=0,k;
    12 ll binarys(ll l,ll r){
    13    ll mid=1;
    14    while(l<r){
    15      mid=(l+r)>>1;
    16    if(mid<maxa) {l=mid+1;continue;}
    17    ll sum=0;
    18    for(int i=1;i<=n;i++){
    19       sum+=mid-a[i];
    20    }
    21    if(sum>=mid)
    22      r=mid;
    23    else l=mid+1;
    24    }
    25    return l;
    26 }
    27 int main()
    28 {
    29     cin>>n;
    30     for(int i=1;i<=n;i++)
    31     {
    32         cin>>a[i];
    33         maxa=max(maxa,a[i]);
    34     }
    35     k=10*maxa;
    36     cout<<binarys(1,k)<<endl;
    37     return 0;
    38 }
    Mafia
  • 相关阅读:
    js保存图片至本地
    ArrayLike
    key的作用
    react Video event
    react中字符串换行
    react打包后找不到静态文件
    2020软件工程第三次作业
    003 Longest Substring Without Repeating Characters
    002addTwoNumbers
    001twoSum
  • 原文地址:https://www.cnblogs.com/XXrll/p/11112160.html
Copyright © 2011-2022 走看看