zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 76 (Rated for Div. 2)

    A. Two Rival Students 

    题目大意为:给定一个长度为n的序列并指定a元素b元素再在序列里的位置,你可以操作x次,求操作完成后a和b的最大距离

    #include <iostream>
    #include <algorithm>
    #include <cmath>
    using namespace std;
    int t,n,x,a,b;
    int main()
    {
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d%d%d%d",&n,&x,&a,&b);
            printf("%d
    ",min(n-1,x+abs(b-a)));
        }
    }
    View Code

    B. Magic Stick

    题目大意:给定两个数a和b并定义两个操作。操作一:如果a>1,那么a就可以不断-1 操作二:如果a是偶数,则可以变成二分之三a 问a经过任意顺序任意次数操作和可否变成b

    分析:由于a和b都是大于1的正整数 故当a>=b时 不操作或通过不断-1操作最终可以变为b。当a<b时 若a>=4那他就可以不断乘二分之三完成倍增或先减去1再进行倍增最终与b相等。

    当a=2时乘上二分之三是3无法倍增,减1倍增后发现始终循环,故需要特判。

    #include <iostream>
    #include <algorithm>
    using namespace std;
    int t;
    int  a,b;
    int main()
    {
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d%d",&a,&b);
            if(a>=b)
            printf("YES
    ");
            else if(a<b&&a>=4)
            printf("YES
    ");
            else if(a==2&&b==3)
            printf("YES
    ");
            else printf("NO
    ");
            
        }
    }
    View Code

    C. Dominated Subarray

    题意:求一段最小的子区间使得只有一个数的个数为2

    #include <iostream>
    #include <algorithm>
    #include <cstring>
    #include <set>
    using namespace std;
    const int N=200100,INF=0x3f3f3f3f;
    int a[N];
    set<int>s;
    int n,ans;
    int pos[N];
    int main()
    {
        int t;
        cin>>t;
        while(t--)
        {
                s.clear();
                memset(pos,0,sizeof(pos));
                cin>>n;
                for(int i=1;i<=n;i++)
                cin>>a[i];
                ans=INF;
                for(int i=1;i<=n;i++)
                {
                        if(s.count(a[i])==1)
                        {
                            ans=min(ans,i-pos[a[i]]+1);
                            pos[a[i]]=i;
                            continue;
                        }
                        s.insert(a[i]);
                        pos[a[i]]=i;
                }
                if(ans==INF)
                cout<<-1<<endl;
                else
                cout<<ans<<endl;
        }
    }
    View Code
  • 相关阅读:
    云原生生态周报 Vol. 16 | CNCF 归档 rkt,容器运行时“上古”之战老兵凋零
    Knative 基本功能深入剖析:Knative Eventing 之 Sequence 介绍
    基于 K8s 做应用发布的工具那么多, 阿里为啥选择灰姑娘般的 Tekton ?
    Serverless 的喧哗与骚动(一)附Serverless行业发展回顾
    239. Sliding Window Maximum
    237. Delete Node in a Linked List
    146. LRU Cache
    140. Word Break II
    165. Compare Version Numbers
    258. Add Digits
  • 原文地址:https://www.cnblogs.com/daoyuan/p/12421005.html
Copyright © 2011-2022 走看看