ACM 实验室2020.11.08天梯赛练习*5

Posted aixiaodezsh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACM 实验室2020.11.08天梯赛练习*5相关的知识,希望对你有一定的参考价值。

7-2 天梯赛座位分配 (20分)

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    int sets[100][10][10];//i个学校j个队伍第k个人的编号
    int n,maxt = -1;
    int nums[100];//存储每个学校的队伍数量
    cin >> n;
    for(int i = 0;i < n;i++)
    {
        cin >> nums[i];
        maxt = max(nums[i],maxt);//记录最大的队伍数量
    }
    int num = 0,lasti = -1;
    for(int j = 0;j < maxt;j++)//队伍数量
        for(int k = 0;k < 10;k++)
            for(int i = 0;i < n;i++)//每个学校依次编号
                if(j < nums[i])//还没分配完所有的队伍
                {
                    if(lasti == i)//说明只剩下一个学校
                    num += 2;
                    else
                    num ++;
                    sets[i][j][k] = num;
                    lasti = i;
                }
    for(int i = 0;i < n;i++)
    {
        cout << "#" << i + 1 << endl;
        for(int j = 0;j < nums[i];j++)
        {
            for(int k = 0;k < 10;k++)
            {
                cout << sets[i][j][k];
                if(k != 9)
                cout << " ";
            }
            cout << endl;
        }
    }
    return 0;
}

7-11 彩虹瓶 (25分)

#include<iostream>
#include<stdio.h>
#include<stack>
using namespace std;
int main(){
    int n,m,k;
    while(cin>>n>>m>>k){
        while(k--){
            int a;
            stack<int>sk;
            int f=0;
            int c=1;
            //ans=0;
            for(int i=0;i<n;i++){
                cin>>a;
                if(a==c){
                    c++;
                    while(!sk.empty()){
                        if(sk.top()==c){
                            c++;
                            sk.pop();
                        }
                        else{
                            break;
                        }
                    }
                }
                else{
                    sk.push(a);
                    if(sk.size()>m) f=1;
                }
                //cout<<sk.size()<<endl;
            }
            if(f==1||c<n){
                cout<<"NO"<<endl;
            }
            else{
                cout<<"YES"<<endl;
            }
        }
    }
    return 0;
}

 

以上是关于ACM 实验室2020.11.08天梯赛练习*5的主要内容,如果未能解决你的问题,请参考以下文章

团体程序设计天梯赛-练习集

团体程序设计天梯赛练习集——整除光棍

PTA2022年蓝桥杯及天梯赛赛前训练(C++练习)

团体程序设计天梯赛-练习集(7-32 说反话-加强版)

团体程序设计天梯赛-练习集

团体程序设计天梯赛-练习集