zoukankan      html  css  js  c++  java
  • AtCoder Regular Contest 082

    我都出了F了……结果并没有出E……atcoder让我差4分上橙是啥意思啊……

    C - Together

    题意:把每个数加1或减1或不变求最大众数。

    #include<cstdio>
    #include<algorithm>
    using namespace std;
     
     
    int read_p,read_ca;
    inline int read(){
        read_p=0;read_ca=getchar();
        while(read_ca<'0'||read_ca>'9') read_ca=getchar();
        while(read_ca>='0'&&read_ca<='9') read_p=read_p*10+read_ca-48,read_ca=getchar();
        return read_p;
    }
    int t[110000],n,a;
    int main(){
        n=read();
        for (int i=1;i<=n;i++){
            a=read();
            t[a]++;t[a+1]++;t[a+2]++;
        }
        a=0;
        for (int i=0;i<=100100;i++) if (t[i]>a) a=t[i];
        printf("%d
    ",a);
    }
    View Code

    D - Derangement

    题意:求把一个排列变成错排的最少操作数,操作是交换相邻俩位置。

    #include<cstdio>
    #include<algorithm>
    using namespace std;
     
     
    int read_p,read_ca;
    inline int read(){
        read_p=0;read_ca=getchar();
        while(read_ca<'0'||read_ca>'9') read_ca=getchar();
        while(read_ca>='0'&&read_ca<='9') read_p=read_p*10+read_ca-48,read_ca=getchar();
        return read_p;
    }
    int t[110000],n,a=0;
    int main(){
        n=read();
        for (int i=1;i<=n;i++){
            t[i]=read();
        }
        for (int i=1;i<n;i++)
        if (t[i]==i) a++,swap(t[i],t[i+1]);
        if (t[n]==n) a++;
        printf("%d
    ",a);
    }
    View Code

    E - ConvexScore

    题意:一个凸包的价值为其$2^{内部点数}$求所以凸包价值之和。

    题解:窝好蠢啊,居然没想到这个……$2^{内部点数}$其实就是把每个集合都统计了一遍,这样就只剩下直线的集合没被统计了。

    代码还没写(不想补题)

    F - Sandglass

    题意:一沙漏初始上边那个为a,下边为X-a,每秒上边向下边掉一个,一些时刻会把沙漏倒过来,问某时刻的状态。

    题解:反正就是个分段函数,而且只有3段。

    #include<cstdio>
    #include<algorithm>
    #define MN 110000
    #define int long long
    using namespace std;
    
    int read_p,read_ca;
    inline int read(){
        read_p=0;read_ca=getchar();
        while(read_ca<'0'||read_ca>'9') read_ca=getchar();
        while(read_ca>='0'&&read_ca<='9') read_p=read_p*10+read_ca-48,read_ca=getchar();
        return read_p;
    }
    int n,m,X,K,T[MN],la=0,Q,t,a,l[MN],r[MN],L[MN],R[MN];
    signed main(){
        X=read();
        K=read();
        l[0]=0;L[0]=0;r[0]=X;R[0]=X;
        for (int i=1;i<=K;i++){
            a=read();
            T[i]=a;
            l[i]=l[i-1];r[i]=r[i-1];
            L[i]=L[i-1]-(a-la);
            R[i]=R[i-1]-(a-la);
            if (L[i]<=R[i])
            if (R[i]<=0){
                l[i]=0;L[i]=X;r[i]=0;R[i]=X;
            }else{
                if (L[i]<0)
                l[i]-=L[i],
                L[i]=0;
                
                L[i]=X-L[i];R[i]=X-R[i];
            }else
            if (L[i]<=0){
                l[i]=0;L[i]=X;r[i]=0;R[i]=X;
            }else{
                if (R[i]<0)
                r[i]+=R[i],
                R[i]=0;
                
                L[i]=X-L[i];R[i]=X-R[i];
            }
            la=a;
        }
        
        /*for (int i=0;i<=K;i++)
        printf("%d %d %d %d %d
    ",i,l[i],r[i],L[i],R[i]);*/
        Q=read();
        for (int i=1;i<=Q;i++){
            t=read();a=read();
            int _l=0,_r=K,mid;
            while (_l<_r){
                if (T[mid=_l+_r+1>>1]<=t) _l=mid;else _r=mid-1;
            }
            t-=T[_l];
            if (a<=l[_l]) a=L[_l];else if (a>=r[_l]) a=R[_l];else if (L[_l]==R[_l]) a=L[_l];else
            if (L[_l]<R[_l]) a=L[_l]+(a-l[_l]);else a=L[_l]-(a-l[_l]);
            
            a-=t;
            if (a<0) a=0;
            
            if (_l&1) a=X-a;
            
            printf("%lld
    ",a);
        }
    }
    View Code
  • 相关阅读:
    ORACLE 查看进程数,已执行任务数, 剩余任务数,删除指定任务
    ORACLE 收集统计整个用户数据
    解决Hystrix dashboard Turbine 一直 Loading…… 及其他坑
    利用 Maven 构造 Spring Cloud 微服务架构 模块使用 spring Boot构建
    AES加解密
    JAVA POI XSSFWorkbook导出扩展名为xlsx的Excel,附带weblogic 项目导出Excel文件错误的解决方案
    JAVA 文件的上传下载
    shell启停服务脚本模板
    JAVA 设计模式之 原型模式详解
    JAVA 设计模式之 工厂模式详解
  • 原文地址:https://www.cnblogs.com/Enceladus/p/7468155.html
Copyright © 2011-2022 走看看