zoukankan      html  css  js  c++  java
  • 2020-07-04 热身训练赛(四)

    A.(Gym-101992A)

    B.排列(Gym-101992B)

    题意:给出一个长度为n的序列,只能对其施加添加一个数字和删除一个数字的操作,求最少需要多少次能把序列变成1~p的排列(p不知道)。

    解:枚举p,求最小值

    #include<iostream>
    #include<cstdio>
    #include<map>
    using namespace std;
    int T,n,ans;
    map<int,bool>p;
    int main(){
        freopen("task.in","r",stdin);
        scanf("%d",&T);
        int x;
        while(T--){
            p.clear();
            scanf("%d",&n);
            ans=n+1;
            for(int i=1;i<=n;i++){
                scanf("%d",&x);
                p[x]=1;
            }
            int cnt=0;
            for(int i=1;i<=n*2;i++){
                if(p[i])cnt++;
                ans=min(ans,n+i-cnt*2);
            }
            printf("%d
    ",ans);
        }
        return 0;
    }

    C.(Gym-101992C)

    D.(Gym-101992D)

    E.(Gym-101992E)

    F.赛跑(Gym-101992F)

    题意:上次比赛的平均成绩为N,这次比赛目前的总成绩为M,已经赛完X场,还有Y场尚未开始。求接下来的Y场需要拿到多少分才能使得本次的平均成绩大于等于上次的。

    解:题意用方程表示为$Nleq frac{M+a}{X+Y}$(a为待求量)。整理可得$ageq N(X+Y)-M$,还需要判断一下是否已经输了或者赢了。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int T,N,M,X,Y;
    int main(){
        freopen("mosalah.in","r",stdin);
        scanf("%d",&T);
        while(T--){
            scanf("%d%d%d%d",&N,&M,&X,&Y);
            if(N*(X+Y)<=M){
                puts("0");
            }
            else if(Y==0&&N*(X+Y)>M){
                puts("-1");
            }
            else {
                int ans=N*(X+Y)-M;
                printf("%d
    ",ans);
            }
        }
        return 0;
    }

    G.(Gym-101992G)

    H.(Gym-101992H)

    I.(Gym-101992I)

    J.(Gym-101992J)

    K.(Gym-101992K)

    L.(Gym-101992L)

    M.(Gym-101992M)

  • 相关阅读:
    php笔记小结
    php知识总结(二)
    php知识点总结(一)
    js冒泡排序及计算其运行时间
    空中飘动的云动画
    网站建设教程:WordPress如何在虚拟主机上安装
    网站建设教程之PageAdmin建站系统的安装
    免费CMS建站系统哪个比较好?如何选择?
    网站建设之自助建站系统的选择?
    企业外贸网站制作的要求及注意事项
  • 原文地址:https://www.cnblogs.com/thmyl/p/13236029.html
Copyright © 2011-2022 走看看