1056 Mice and Rice

2023-11-30 23:28
文章标签 1056 mice rice

本文主要是介绍1056 Mice and Rice,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意:给定一组选手,按一定顺序将这些选手进行分组竞赛,每组的最大值为优胜者,进入下一轮分组再进行竞赛,直到选出最大值。然后输出每个选手的rank。

坑点:每个选手的rank为该轮竞赛选出的优胜者数+1!!而不应该根据该选手是在第几轮淘汰算的!因为肯定比优胜者的rank低嘛。我阅读理解确实不太好,于是成功浪费两小时。

思路:可以用队列模拟选手顺序,每次取出组数个选手(不足则全部取出),然后将优胜者放入下一轮队列中,淘汰者记录下来,最后将淘汰者的rank标记为优胜者数+1。

#include<bits/stdc++.h>
using namespace std;struct node{int val;int rank;
};
node p[1010];
queue<int>q;
int n,m;
int main(){cin>>n>>m;for(int i=0;i<n;i++){cin>>p[i].val;}for(int i=0;i<n;i++){int a;cin>>a;q.push(a);}while(q.size()>1){queue<int>next;queue<int>loser;while(q.size()){int k=min(m,(int)q.size());vector<int>temp;while(k--){int f=q.front();q.pop();temp.push_back(f);}int mx=-1,pos;for(auto x:temp){if(mx<p[x].val){mx=p[x].val;pos=x;}}for(auto x:temp){if(x!=pos){loser.push(x);}}next.push(pos);// cout<<pos<<' ';}while(loser.size()){int f=loser.front();loser.pop();p[f].rank=next.size()+1;}q=next;}p[q.front()].rank=1;int flag=0;for(int i=0;i<n;i++){if(flag)cout<<' ';cout<<p[i].rank;flag=1;}
}

这篇关于1056 Mice and Rice的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/438929

相关文章

BZOJ 1056 排名系统 Splay

实现一颗名次树,提供如下操作 上传一条新的得分记录、查询某个玩家的当前排名以及返回某个区段内的排名记录。 splay的基本的插入删除操作,在加一个hash映射名字和得分,不过可能值会相同。可以给每个节点增加一个表示时间的域,如果值一样,就以时间为第二关键字继续在子树中递归查找。

PAT甲级真题及训练集(9)--1056. Mice and Rice (25)

1056. Mice and Rice (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Mice and Rice is the name of a programming contest in which each programmer

poj 1003 hdu 1056 HangOver

直接贴代码。水! #include<stdio.h>double s,n;int c;main(){while(scanf("%lf",&n)==1&&n>0){for(c=1,s=0.5;s<n;c++)s+=(1.0/(c+2));printf("%d card(s)\n",c);}}

【文献阅读】 The ITS Irregular Terrain Model(Longely-Rice模型)海上电波传播模型

前言 因为最近在做海上通信的一个项目,所以需要对海上的信道进行建模,所以才阅读到了这一篇文献,下面的内容大部分是我的个人理解,如有错误,请见谅。欢迎在评论区和我一起讨论。 Longely-Rice模型介绍 频率介于 20 MHz 和 20 GHz 之间的 ITS 无线电传播模型(Longley-Rice 模型)(以 Anita Longley 和 Phil Rice 命名,1968 年)是一

【杆号识别】基于matlab铁路接触网系统杆号识别【含Matlab源码 1056期】

⛄一、获取代码方式 获取代码方式1: 完整代码已上传我的资源:【杆号识别】基于matlab铁路接触网系统杆号识别【含Matlab源码 1056期】 (https://download.csdn.net/download/TIQCmatlab/62925370) 点击上面蓝色字体,直接付费下载,即可。 获取代码方式2: 付费专栏Matlab图像处理(初级版) 备注: 点击上面蓝色字体付费专栏M

【ZZULIOJ】1056: 幸运数字(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy code 题目描述 小明对某些数字有偏爱,例如,他喜欢7的倍数,而不喜欢4的倍数,如果一个整数是7的倍数,而不是4的倍数,小明会认为这个数字是他的幸运数字。现在给定两个整数m和n,请你帮小明找m到n范围内的最大的幸运数字。如果m到n范围内没有幸运数字,则输出“no” 输入 两个正整数m和n(m < =n

PTA C 1056 组合数的和

给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330。 输入格式: 输入在一行中先给出 N(1 < N < 10),随后给出 N 个不同的非 0 个位数字。数字间以空格分隔。 输出格式: 输出所有可能组合出来的2位数字的和。

PAT Basic Level 1056 组合数的和 解题思路及AC代码 v1.0

PAT 乙级 1056 组合数的和 1. 题目简述及在线测试位置2. 基本思路3. 完整AC代码 1. 题目简述及在线测试位置 1.1 给定N个非0数,用其中任意2个数组成1个2位数,求所有可能的2位数的和。例如:给定 2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330 1.2 在线测试位置: 1056 组合数的和 2. 基本思路 通过两重循环

rice计算机专业排名,Rice计算机工程专业研究生排名重点知识点精讲

原标题:Rice计算机工程专业研究生排名重点知识点精讲 莱斯身处休斯顿,城市生活不在话下,非常的鼓励夸专业选课,学院之间根本没有阻碍,工科(特别是能源类相关领域)特别的出色。化学也强势的,因为有不少研究中心,且和将来化工等新资料的研究密不可分,我认为挺好的。录取学生来看,特别喜欢文理平衡的学生,标准模板可以是:一个喜欢米开朗基罗的文艺理科男,同时最好还玩吉他,写写中国书法,那自然是最好的,Ri

1056. 组合数的和(15) PAT 乙级

[传送门](https://www.patest.cn/contests/pat-b-practise/1056) #include<iostream>using namespace std;int main(){int N;int num;int sum=0;cin>>N;for(int i=0;i<N;i++){cin>>num;sum+=(N-1)*10*num+(N-1)*num;}c