[NOIP2012]借教室(二分)

 

你咯的定级真是雾……二分入门水题

前缀和维护一下借的天数,二分查找答案,就酱~!

#include<bits/stdc++.h>
using namespace std;
const int N = 1000050;
int n,m;
long long r[N],d[N],a[N];
int s[N],t[N];
bool check(int mid)
{
    memset(a,0,sizeof(a));
    for(int i = 1; i <= mid; i++){
        //前缀和记录要借的 
        a[s[i]] += d[i];
        a[t[i] + 1] -= d[i];
    }
    for(int i = 1; i <= n; i++){
        a[i] += a[i-1];  //前缀和处理完毕~?ヽ(°▽°)ノ? 
        if(a[i] > r[i])return 0;
    } 
    return 1;
}
signed main()
{
   cin>>n>>m;
   for(int i = 1; i <= n; i++ )cin>>r[i];
   for(int i = 1; i <= m; i++ )scanf("%d%d%d",&d[i],&s[i],&t[i]);
   if(check(m))printf("0");   
   else {
       int l = 1,r = m;
       while(l < r){
        int mid = l + (r - l) / 2;
        if(check(mid)){
             l = mid + 1;  //根据mid定义可知  此时前段都能借到,那就向后查找
        }
        else r = mid;
    }printf("-1\n%d",l);
   }
}

 

posted @ 2019-08-26 17:12  QUEKI嶺冬  阅读(212)  评论(0)    收藏  举报
/*! Color themes for Google Code Prettify | MIT License | github.com/jmblog/color-themes-for-google-code-prettify */ .pln{color:#4d4d4c}ol.linenums{margin-top:0;margin-bottom:0;color:#8e908c}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#fff;list-style-type:decimal!important;}@media screen{.str{color:#718c00}.kwd{color:#8959a8}.com{color:#8e908c}.typ{color:#4271ae}.lit{color:#f5871f}.pun{color:#4d4d4c}.opn{color:#4d4d4c}.clo{color:#4d4d4c}.tag{color:#c82829}.atn{color:#f5871f}.atv{color:#3e999f}.dec{color:#f5871f}.var{color:#c82829}.fun{color:#4271ae}} /*下面是我设置背景色,字体大小和字体*/ .cnblogs-markdown code{ background:#fff!important; } .cnblogs_code,.cnblogs_code span,.cnblogs-markdown .hljs{ font-size:16px!important; } .syntaxhighlighter a, .syntaxhighlighter div, .syntaxhighlighter code, .syntaxhighlighter table, .syntaxhighlighter table td, .syntaxhighlighter table tr, .syntaxhighlighter table tbody, .syntaxhighlighter table thead, .syntaxhighlighter table caption, .syntaxhighlighter textarea { font-size: 16px!important; } .cnblogs_code, .cnblogs_code span, .cnblogs-markdown .hljs{ font-family:consolas, "Source Code Pro", monaco, monospace !important; } //以上是代码高亮 /* 文字特效 */