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
  • 相关阅读:
    向上造型
    Service与Activity通信
    adb报错:no permissions (user in plugdev group; are your udev rules wrong?); see [http://developer.android.com/tools/device.html]
    13-AB Test学习
    1-端到端机器学习项目
    12-数据分析框架
    2-电影推荐案例学习
    11-pyecharts使用Tab不完全代码示例
    22-基于Python构建GRPC服务
    akka练习
  • 原文地址:https://www.cnblogs.com/ydnhaha/p/9879018.html
Copyright © 2011-2022 走看看