uva12100解题报告

本文介绍了一个使用标准模板库(STL)实现的队列模拟进出操作的程序案例。该程序利用普通队列和优先队列来模拟一组元素的进出过程,并记录特定元素的进出次序。通过输入一系列数据,程序能够输出指定元素的最终位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

水题留念

一个队列模拟进出操作,一个优先队列保存优先级,模拟过程输出结果

Time 0ms

#include<cstdio>
#include<queue>
#include<cstring>
#include<sstream>
using namespace std;

const int maxn=100+10;
typedef pair<int,int> P;

struct cmp
{
    bool operator () (const P &p1,const P &p2)const{
        return p1.first<p2.first;
    }
};

int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int n,m;
        queue<P> q1;
        priority_queue<P,vector<P>,cmp > q2;
        int ver[15];
        memset(ver,0,sizeof(ver));
        scanf("%d %d",&n,&m);
        for(int i=0;i<n;i++)
        {
            int x;
            scanf("%d",&x);
            ver[x]++;
            P p=make_pair(x,i);
            q1.push(p);
        }
        for(int i=1;i<=9;i++)
            if(ver[i]>0) { P p=make_pair(i,ver[i]); q2.push(p); }
        int ans=0;
        while(1)
        {
            P p=q1.front(); q1.pop();
            if(p.first!=q2.top().first) q1.push(p);
            else{
                if(p.second==m) { ans++; break; }
                else {
                    ans++; P p1=q2.top(); q2.pop();
                    if(p1.second>1){
                        p1.second--;
                        q2.push(p1);
                    }
                }
            }
        }
        printf("%d\n",ans);
    }
    return 0;
}


Docker 是一个开源的容器化平台,它可以让你更方便地创建、部署和运行应用程序。本文将为您提供 Docker 的基础知识,以及如何在您的计算机上安装和使用 Docker。 1. Docker 的基础概念 Docker 是一个容器化平台,它可以让您更轻松地创建、部署和运行应用程序。容器是一个轻量级的运行环境,它可以在任何操作系统上运行,而无需额外的配置。 Docker 的主要组成部分包括 Docker 镜像、Docker 容器Docker 仓库。 - Docker 镜像:一个 Docker 镜像是一个可执行的软件包,它包含了应用程序的所有代码、运行时环境、库和依赖项。您可以将 Docker 镜像看作是一个打包好的应用程序。 - Docker 容器:一个 Docker 容器是一个可运行的实例,它是由 Docker 镜像创建而来的。每个容器都是独立的运行环境,它可以运行在任何 Docker 主机上。多个 Docker 容器可以运行在同一个主机上,并且它们之间是隔离的。 - Docker 仓库:Docker 仓库是一个存储 Docker 镜像的地方。您可以将 Docker 镜像上传到 Docker 仓库中,也可以从 Docker 仓库中下载 Docker 镜像。 2. Docker安装 在开始使用 Docker 之前,您需要在您的计算机上安装 DockerDocker 可以在不同的操作系统上运行,包括 Linux、Windows 和 macOS。 - Linux:对于 Linux 用户,您可以根据您的发行版选择适当的 Docker 安装方式。例如,在 Ubuntu 上,您可以使用以下命令安装 Docker: ``` $ sudo apt-get update $ sudo apt-get install docker-ce ``` - Windows 和 macOS:对于 Windows 和 macOS 用户,您可以使用 Docker Desktop 进行安装Docker Desktop 是一个带有图形界面的应用程序,可以让您更轻松地管理 Docker。 3. Docker 的使用 一旦您成功地安装Docker,您就可以开始使用它来创建、部署和运行应用程序了。 - 创建 Docker 镜像:您可以使用 Dockerfile 文件来创建 Docker 镜像。Dockerfile 是一个文本文件,其中包含了创建 Docker 镜像所需的所有指令。例如,以下是一个简单的 Dockerfile 文件: ``` FROM ubuntu:latest RUN apt-get update && apt-get install -y nginx CMD ["nginx", "-g", "daemon off;"] ``` 这个 Dockerfile 文件指定了一个基于最新版 Ubuntu 镜像的 Docker 镜像,然后安装了 Nginx 服务器。最后,CMD 指令指定了 Nginx 服务器的启动命令。 - 构建 Docker 镜像:一旦您编写了 Dockerfile 文件,您就可以使用 docker build 命令来构建 Docker 镜像。例如,以下是一个简单的构建命令: ``` $ docker build -t my-nginx . ``` 这个命令将使用当前目录下的 Dockerfile 文件来创建一个名为 my-nginx 的 Docker 镜像。 - 运行 Docker 容器:一旦您有了 Docker 镜像,您就可以使用 docker run 命令来运行 Docker 容器。例如,以下是一个简单的运行命令: ``` $ docker run -d -p 80:80 my-nginx ``` 这个命令将在后台运行一个名为 my-nginx 的 Docker 容器,并将容器的 80 端口映射到主机的 80 端口上。 - 将 Docker 镜像推送到 Docker 仓库:一旦您创建了 Docker 镜像,您可以使用 docker push 命令将其推送到 Docker 仓库中。例如,以下是一个简单的推送命令: ``` $ docker push my-nginx ``` 这个命令将名为 my-nginx 的 Docker 镜像推送到 Docker 仓库中。 这些都是 Docker 的基础知识和用法。如果您想深入了解 Docker,您可以访问 Docker 官方网站,其中包含了更详细的文档和教程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值