zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 77 (Rated for Div. 2)D(二分+贪心)

    这题二分下界是0,所以二分写法和以往略有不同,注意考虑所有区间,并且不要死循环。。。

     1 #define HAVE_STRUCT_TIMESPEC
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 int m,n,k,t;
     5 int a[200007];
     6 int x[200007],y[200007],z[200007];
     7 int sum[200007];
     8 int check(int v){
     9     memset(sum,0,sizeof(sum));
    10     for(int i=1;i<=k;++i)
    11         if(z[i]>v)
    12             ++sum[x[i]],--sum[y[i]+1];
    13     int temp=0;
    14     for(int i=1;i<=n;++i){
    15         sum[i]+=sum[i-1];
    16         if(sum[i])
    17             temp+=2;
    18     }
    19     if(temp<=t)
    20         return 1;
    21     return 0;
    22 }
    23 int main(){
    24     ios::sync_with_stdio(false);
    25     cin.tie(NULL);
    26     cout.tie(NULL);
    27     cin>>m>>n>>k>>t;
    28     for(int i=1;i<=m;++i)
    29         cin>>a[i];
    30     for(int i=1;i<=k;++i)
    31         cin>>x[i]>>y[i]>>z[i];
    32     t-=n+1;
    33     sort(a+1,a+1+m);
    34     int l=0,r=m;
    35     int ans=0;
    36     while(l<r){
    37         int mid=(l+r+1)>>1;
    38         if(check(a[m-mid+1])){
    39             l=mid;
    40             ans=max(ans,mid);
    41         }
    42         else
    43             r=mid-1;
    44     }
    45     cout<<ans;
    46     return 0;
    47 }
    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    更新github上的代码
    使用git上传项目代码到github
    解决jenkins插件列表为空的问题
    P3200 [HNOI2009]有趣的数列
    BZOJ3907 网格
    解决SDK下载时速度过慢的问题
    实用的Android代码片段集合(精)
    广播与服务(二)
    action使用大全
    广播与服务(一)
  • 原文地址:https://www.cnblogs.com/ldudxy/p/11955436.html
Copyright © 2011-2022 走看看