程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Codeforces 460C

Codeforces 460C

編輯:C++入門知識

Codeforces 460C


比較裸的二分,但是比賽的時候腦抽,用樹狀數組瞎搞過了,但是邊界條件沒注意讓hack了。

後來看到有人寫了很簡單的版本,又過了一遍,提醒一下自己不能忘記基本算法。

#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
int a[100005],b[100005],sum[100005];
int n,m,k;
bool judge(int mid)
{
    int step=m,add=0;
    memset(sum,0,sizeof(sum));
    for(int i=0;i>n>>m>>k)
    {
        int minn=1e9;
        int maxx=0;
        for(int i=0;i>a[i];
            minn=min(minn,a[i]);
            maxx=max(maxx,a[i]);
        }
        int low=minn,high=m+maxx;
        int ans=minn;
        while(low<=high)
        {
            int mid=(low+high)>>1;
            if(judge(mid))
            {
                ans=max(ans,mid);
                low=mid+1;
            }
            else
            high=mid-1;
        }
        cout<

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved