• 【NOIP模拟赛181007】足球比赛


    题目描述

    在2009的中国城市足球比赛中,在2^N支队中,有一些队在开赛前宣布了退出比赛。比赛采取的是淘汰赛。比如有4支队伍参加,那么1队和2队比赛,3队和4队赛,然后1队和2队的胜者与3队和4队的胜者争夺冠军。但是由于某些队伍退出,那么如果某个原本存在的比赛只有一个支队,那么这一支队自动晋级,如果没有队伍出现,那么就跟本没有比赛。比如,1队和2队退出比赛,那么就只有3队和4队的比赛,然后其胜者在原本和1队和2队的胜者的决赛中自动晋级,成为冠军。

    给出哪些队退出的比赛计算会有多少场比赛中队伍自动晋级。

    输入

    第一行有两个数N(1<=N<=10),M。接下来有M个数,表示哪些队退出了比赛。选手编号从1到2

    输出

    在第一行输出有多少场比赛中队伍自动晋级。

    样例输入

    3 5
    1 2 3 4 5
    

    样例输出

    2

    提示

    代码

    #pragma GCC optimize(1)
    #pragma GCC optimize(2)
    #pragma GCC optimize(3)
    #pragma GCC optimize("Ofast")
    #pragma GCC optimize("inline")
    #include<bits/stdc++.h>
    #define rep(i,j,k) for(register int i=(j);i<=(k);++i)
    #define per(i,j,k) for(register int i=(j);i>=(k);--i)
    using namespace std;
    template<class T> inline void read(T &x)
    {
        x=0;
        register char c=getchar();
        register bool f=0;
        while(!isdigit(c))f^=c=='-',c=getchar();
        while(isdigit(c))x=x*10+c-'0',c=getchar();
        if(f)x=-x;
    }
    int n,m,used[2001],tmp[2001],ans;
    int main()
    {
      
        read(n),read(m);
        n=pow(2,n);
        while(m--)
        {
            register int qwq;
            read(qwq);
            used[qwq]=1;
        }
        while(n!=1)
        {
            for(register int i=1;i<=n;i+=2)
            {
                if(used[i]==0&&used[i+1]==0)
                    tmp[(i+1)/2]=0;
                if(used[i]==1&&used[i+1]==0)
                    tmp[(i+1)/2]=0,ans++;
                if(used[i]==0&&used[i+1]==1)
                    tmp[(i+1)/2]=0,ans++;
                if(used[i]==1&&used[i+1]==1)
                    tmp[(i+1)/2]=1;
            }
            rep(i,1,n)
                used[i]=tmp[i];
            n/=2;
        }
        printf("%d
    ",ans);
        return 0;
    }
  • 相关阅读:
    1. Redis是属于多线程还是单线程?不同版本之间有什么区别?
    揭开操作系统之内存管理的面纱
    《Cython系列》3. 深入Cython(内含Python解释器相关知识以及源码分析)
    《Cython系列》2. 编译并运行Cython代码
    《Cython系列》1. Cython概要
    python执行lua代码
    lua语言(2):闭包、模式匹配、日期、编译、模块
    100个网络基础知识
    str list tuple dict
    基础算法
  • 原文地址:https://www.cnblogs.com/LJA001162/p/12817118.html
Copyright © 2020-2023  润新知