zoukankan      html  css  js  c++  java
  • bzoj千题计划278:bzoj4590: [Shoi2015]自动刷题机

    http://www.lydsy.com/JudgeOnline/problem.php?id=4590

    二分

    这么道水题 没long long WA了两发,没判-1WA了一发,二分写错WA了一发

    最近是怎么了啊啊啊O(≧口≦)O

    #include<cstdio>
    #include<iostream>
    
    using namespace std;
    
    int n,m;
    
    int x[100001];
    
    void read(int &x)
    {
        x=0; int f=1; char c=getchar();
        while(!isdigit(c)) { if(c=='-') f=-1; c=getchar(); }
        while(isdigit(c)) { x=x*10+c-'0'; c=getchar(); }
        x*=f;
    }
    
    int check(long long k)
    {
        long long now=0;
        int sum=0;
        for(int i=1;i<=n;++i)
        {
            now+=x[i];
            if(now>=k) sum++,now=0;
            else if(now<0) now=0;
        }
        return sum;
    }
    
    int main()
    {
        freopen("autoac.in","r",stdin);
        freopen("autoac.out","w",stdout);
        read(n); read(m);
        for(int i=1;i<=n;++i) read(x[i]);
        long long l=1,r=1LL*n*1e9,tmp=-1,mid;
        int t;
        while(l<=r)
        {
            mid=l+r>>1;
            t=check(mid);
            if(t==m) tmp=mid,r=mid-1;
            else if(t>m) l=mid+1;
            else r=mid-1;
        }
        if(tmp==-1) 
        {
            printf("-1");
            return 0;
        }
        cout<<tmp<<' ';
        l=tmp,r=1LL*n*1e9;
        while(l<=r)
        {
            mid=l+r>>1;
            t=check(mid);
            if(t==m) tmp=mid,l=mid+1;
            else if(t>m) l=mid+1;
            else r=mid-1;
        }
        cout<<tmp;
        return 0;
    }
  • 相关阅读:
    jsp第四次作业
    软件测试第一次作业
    jsp第三次作业
    jsp第二次作业
    JSP第九次作业
    JSP第八次作业
    JSP第七次作业
    JSP第六次作业
    JSP第五次作业
    JSP第四次作业2
  • 原文地址:https://www.cnblogs.com/TheRoadToTheGold/p/8562623.html
Copyright © 2011-2022 走看看