zoukankan      html  css  js  c++  java
  • Mail.Ru Cup 2018 Round 1 virtual participate记

      因为睡过了只好vp。

      A:阅读理解。

    #include<iostream> 
    #include<cstdio>
    #include<cmath>
    #include<cstdlib>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int read()
    {
        int x=0,f=1;char c=getchar();
        while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}
        while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
        return x*f;
    }
    #define N 
    int x,y,z,t1,t2,t3;
    int main()
    {
        cin>>x>>y>>z>>t1>>t2>>t3;
        if (abs(y-x)*t1>=t3*3+t2*(abs(x-z)+abs(y-x))) cout<<"YES";
        else cout<<"NO";
        return 0;
    }
    View Code

      B:一个数可以作为mex当且仅当所有比它小的自然数都已出现。

    #include<iostream> 
    #include<cstdio>
    #include<cmath>
    #include<cstdlib>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int read()
    {
        int x=0,f=1;char c=getchar();
        while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}
        while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
        return x*f;
    }
    #define N 100010
    int n,a[N],mx;
    int main()
    {
        n=read();
        for (int i=1;i<=n;i++) a[i]=read();
        mx=-1;
        for (int i=1;i<=n;i++)
        {
            if (a[i]>mx+1) {cout<<i;return 0;}
            mx=max(mx,a[i]);
        }
        cout<<-1;
        return 0;
    }
    View Code

      C:li=ri=0的人一定是最大值,给他们记录答案后将其去掉并更新其他人的li和ri即可。

    #include<iostream> 
    #include<cstdio>
    #include<cmath>
    #include<cstdlib>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int read()
    {
        int x=0,f=1;char c=getchar();
        while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}
        while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
        return x*f;
    }
    #define N 1010
    int n,a[N],b[N],ans[N],cnt=0;
    int main()
    {
        n=read();
        for (int i=1;i<=n;i++) a[i]=read();
        for (int i=1;i<=n;i++) b[i]=read();
        for (int i=1;i<=n;i++)
        {
            bool flag=0;
            for (int j=1;j<=n;j++)
            if (a[j]==0&&b[j]==0) flag=1,cnt++,ans[j]=n-i+1,a[j]=b[j]=n+2;
            if (!flag) {cout<<"NO";return 0;}
            if (cnt==n) break;
            int tot=0;
            for (int j=1;j<=n;j++)
            if (a[j]==n+2&&b[j]==n+2) tot++;
            else if (a[j]<tot) {cout<<"NO";return 0;}
            else a[j]-=tot;
            tot=0;
            for (int j=n;j>=1;j--)
            if (a[j]==n+2&&b[j]==n+2) tot++;
            else if (b[j]<tot) {cout<<"NO";return 0;}
            else b[j]-=tot;
            for (int j=1;j<=n;j++)
            if (a[j]==n+2&&b[j]==n+2) a[j]=b[j]=n+1;
        }
        cout<<"YES
    ";
        for (int i=1;i<=n;i++) cout<<ans[i]<<' ';
        return 0;
    }
    View Code

      D:注意到对某个位置的数取反会使所有包含他的区间的异或和取反。区间异或和显然可以转化为两个前缀的异或和。这样就可以发现我们对于每一个前缀和都可以任意决定是否取反了。花了1h没救了。

    #include<iostream> 
    #include<cstdio>
    #include<cmath>
    #include<cstdlib>
    #include<cstring>
    #include<algorithm>
    #include<map>
    using namespace std;
    int read()
    {
        int x=0,f=1;char c=getchar();
        while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}
        while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
        return x*f;
    }
    #define N 200010
    int n,m,a[N];
    map<int,int> f;
    long long ans;
    int main()
    {
        n=read(),m=read();f[0]++;
        for (int i=1;i<=n;i++) 
        {
            a[i]=a[i-1]^read();
            if (a[i]<(1<<m-1)) f[a[i]]++;
            else f[((1<<m)-1)^a[i]]++;
        }
        for (int i=1;i<=n;i++) if (a[i]>=(1<<m-1)) a[i]^=((1<<m)-1);
        ans=1ll*n*(n+1)>>1;
        sort(a,a+n+1);int t=unique(a,a+n+1)-a-1;
        for (int i=0;i<=t;i++)
        {
            int x=f[a[i]],p=x/2,q=(x+1)/2;
            ans-=1ll*p*(p-1)/2,ans-=1ll*q*(q-1)/2;
        }
        cout<<ans;
        return 0;
    }
    View Code

      result:rank 426

  • 相关阅读:
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    网站静态化处理—反向代理(10)
    网站静态化处理—满足静态化的前后端分离(9)
    网站静态化处理—前后端分离—下(8)
  • 原文地址:https://www.cnblogs.com/Gloid/p/9818883.html
Copyright © 2011-2022 走看看