zoukankan      html  css  js  c++  java
  • $Luogu4403$ 秦腾与教学评估 二分

    $Luogu$

    $Description$

    有$N$个数列,求一个$x$,$x$在各个数列中的出现次数之和为奇数.这样的$x$最多存在$1$个.若不存在则输出Poor QIN Teng:(

    $Sol$

    这样的$x$最多存在一个说明什么呢?

    我们知道奇数+偶数=偶数,偶数+偶数=偶数,所以从$x$开始往后的数,它们的前缀和都为奇数,$x$以前的数它们的前缀和都是偶数,发现了$x$的单调性!然后二分.

    $over$

    $Code$

    #include<bits/stdc++.h>
    #define il inline
    #define Rg register
    #define go(i,a,b) for(Rg int i=a;i<=b;++i)
    #define yes(i,a,b) for(Rg int i=a;i>=b;--i)
    #define mem(a,b) memset(a,b,sizeof(a))
    #define int long long
    #define db double
    using namespace std;
    il int read()
    {
        Rg int x=0,y=1;char c=getchar();
        while(c<'0'||c>'9'){if(c=='-')y=-1;c=getchar();}
        while(c>='0'&&c<='9'){x=(x<<1)+(x<<3)+c-'0';c=getchar();}
        return x*y;
    }
    int T,n,r;
    struct node{int s,e,d;}a[200010];
    il int calc(int x)
    {
        Rg int ret=0;
        go(i,1,n)if(a[i].s<=x)ret+=(min(x,a[i].e)-a[i].s)/a[i].d+1;
        return ret;
    }
    il int sol()
    {
        Rg int l=1,as=0;
        while(l<=r)
        {
            Rg int mid=(l+r)>>1;
            if(calc(mid)%2==1)as=mid,r=mid-1;
            else l=mid+1;
        }
        return as;
    }
    main()
    {
        T=read();
        while(T--)
        {
            n=read();r=0;go(i,1,n)a[i]=(node){read(),read(),read()},r=max(r,a[i].e);
            if(calc(r)%2==0){printf("Poor QIN Teng:( 
    ");continue;}
            Rg int qwq=sol(),as=0;
            go(i,1,n)
            {
                if(a[i].s>qwq || a[i].e<qwq)continue;
                if((qwq-a[i].s)%a[i].d==0)as++;
            }
            //printf("%d %d
    ",qwq,as);
            printf("%d %d
    ",qwq,calc(qwq)-calc(qwq-1));
        }
        return 0;
    }
    View Code

     

    光伴随的阴影
  • 相关阅读:
    UVA-11437 Triangle Fun
    UVA 10491
    CF 223C
    poj 3273
    由异常掉电问题---谈xfs文件系统
    好久没有写博客了,最近一段时间做一下总结吧!
    Json.Net
    div 旋转
    VirtualBox虚拟机网络设置
    windows 2003 安装 MVC 环境 404错误,无法找到该页
  • 原文地址:https://www.cnblogs.com/forward777/p/11279528.html
Copyright © 2011-2022 走看看