码迷,mamicode.com
首页 > 其他好文 > 详细

20191229 考试记录

时间:2020-01-01 09:17:46      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:struct   set   close   +=   试题   pre   display   main   ref   

T1 

试题分析

$link$

考虑形式化的来讲就是将 $r$ 号套圈所对应的人连 $[r,r+d]$ ,求是否有二分图完美匹配。

而这个问题可以用 $Hall$ 定理判断,考虑连续与非连续的表达形式,可以发现连续的表达形式一定强与非连续。那么问题变为了求 $\sum_{i=l}^r X_i\leq (r-l+1+d)\times k$ ,则 $\sum_{i=l}^r X_i-k\leq d\cdot k$ 。

对于连续段的任何一个值均小于 $d\cdot k$ ,则可以求最大子段和,线段树解决即可,时间复杂度 $O(q\log n)$ 。

技术图片
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define int long long 
using namespace std;
inline int read(){
    int f=1,ans=0;char c=getchar();
    while(c<0||c>9){if(c==-)f=-1;c=getchar();}
    while(c>=0&&c<=9){ans=ans*10+c-0;c=getchar();}
    return f*ans;
}
const int MAXN=500001;
struct Segment{
    int Ml[MAXN<<2],Mr[MAXN<<2],Maxn[MAXN<<2],sum[MAXN<<2];
    inline void pushup(int k){
        sum[k]=sum[k<<1]+sum[k<<1|1];
        Ml[k]=max(Ml[k<<1],sum[k<<1]+Ml[k<<1|1]);Mr[k]=max(Mr[k<<1|1],sum[k<<1|1]+Mr[k<<1]);
        Maxn[k]=max(Maxn[k<<1],Maxn[k<<1|1]);Maxn[k]=max(Maxn[k],Mr[k<<1]+Ml[k<<1|1]);return;
    }
    inline void Modify(int k,int l,int r,int ps,int w){
        if(l==r){Ml[k]+=w,Mr[k]+=w,Maxn[k]+=w,sum[k]+=w;return;}
        int mid=l+r>>1;
        if(ps<=mid) Modify(k<<1,l,mid,ps,w);else Modify(k<<1|1,mid+1,r,ps,w);
        pushup(k);return;
    }
}S;
int N,M,K,d;
signed main(){
    freopen("t1.in","r",stdin);
    freopen("t1.out","w",stdout);
    N=read(),M=read(),K=read(),d=read();
    for(register int i=1;i<=N;++i) S.Modify(1,1,N,i,-K);
    for(register int i=1;i<=M;++i){
        int x=read(),w=read();
        S.Modify(1,1,N,x,w);
        int res=S.Maxn[1];
        if(res<=d*K) printf("TAK\n");else printf("NIE\n");
    } return 0;
}
View Code

 

T2

试题分析

$link$

$duyi\space dalao$ 的题解写的很清楚了。

技术图片

 

1

20191229 考试记录

标签:struct   set   close   +=   试题   pre   display   main   ref   

原文地址:https://www.cnblogs.com/si-rui-yang/p/12121122.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!