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
  • 相关阅读:
    洛谷P3128 [USACO15DEC]Max Flow P 题解 树上差分(点差分)
    数列分块解决区间更新+区间最值问题
    ThinkPad P1 Gen3 4K 显示器出现间歇闪黑屏情况解决
    Qt自定义弹出式菜单(Qt自定义弹窗)
    软件产品易用性评价评估标准
    vue用echarts实现中国地图和世界地图
    知了业务逻辑梳理
    string.gfind string.gmatch
    无法定位程序输入点在 XXXX上...
    [Lua]c解析lua 嵌套table
  • 原文地址:https://www.cnblogs.com/daoyuan/p/12421005.html
Copyright © 2011-2022 走看看