zoukankan      html  css  js  c++  java
  • 解题:POI 2009 Lyz

    题面

    板板讲的霍尔定理

    霍尔定理:一张二分图有完全匹配的充要条件是对于任$i$个左部点都有至少$i$个右部点与它们相邻。放在这个题里就是说显然最容易使得鞋不够的情况是一段连续的人,那就维护一下最大子段和就好了=。=

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 using namespace std;
     5 const int N=200005;
     6 long long ll[4*N],rr[4*N],len[4*N],val[4*N];
     7 long long n,m,k,d,t1,t2;
     8 void pushup(int nde)
     9 {
    10     int ls=2*nde,rs=2*nde+1;
    11     ll[nde]=max(val[ls]+ll[rs],ll[ls]);
    12     rr[nde]=max(val[rs]+rr[ls],rr[rs]);
    13     len[nde]=max(max(len[ls],len[rs]),rr[ls]+ll[rs]);
    14     val[nde]=val[ls]+val[rs];
    15 }
    16 void create(int nde,int l,int r)
    17 {
    18     if(l==r) 
    19         ll[nde]=rr[nde]=len[nde]=val[nde]=-k;
    20     else
    21     {
    22         int mid=(l+r)/2,ls=2*nde,rs=2*nde+1;
    23         create(ls,l,mid),create(rs,mid+1,r);
    24         pushup(nde);
    25     }
    26 }
    27 void change(int nde,int l,int r,int pos,int task)
    28 {
    29     if(l==r) 
    30     {
    31         ll[nde]+=task,rr[nde]+=task;
    32         len[nde]+=task,val[nde]+=task;
    33     }
    34     else
    35     {
    36         int mid=(l+r)/2,ls=2*nde,rs=2*nde+1;
    37         if(pos<=mid) change(ls,l,mid,pos,task);
    38         else change(rs,mid+1,r,pos,task);
    39         pushup(nde);
    40     }
    41 }
    42 int main ()
    43 {
    44     scanf("%lld%lld%lld%lld",&n,&m,&k,&d),create(1,1,n);
    45     for(int i=1;i<=m;i++)
    46     {
    47         scanf("%lld%lld",&t1,&t2),change(1,1,n,t1,t2);
    48         (len[1]<=k*d)?printf("TAK
    "):printf("NIE
    ");
    49     }
    50     return 0;
    51 }
    52 
    View Code
  • 相关阅读:
    HDU 2236 无题Ⅱ
    Golden Tiger Claw(二分图)
    HDU 5969 最大的位或 (思维,贪心)
    HDU 3686 Traffic Real Time Query System (图论)
    SCOI 2016 萌萌哒
    Spring Boot支持控制台Banner定制
    构建第一个Spring Boot程序
    Spring Boot重要模块
    Java fastjson JSON和String互相转换
    BCompare 4 Windows激活方法【试用期30天重置】
  • 原文地址:https://www.cnblogs.com/ydnhaha/p/9879018.html
Copyright © 2011-2022 走看看