1056 Mice and Rice (25 分)

2023-11-15

题目

题解

模拟。


看懂题,自己实现就OK了:

请添加图片描述

代码

#include<bits/stdc++.h>
#define PII pair <int, int>
using namespace std;
const int N = 1e4+10;

int n, gp, o;
int w[N]; // w[i]:编号为i的老鼠的重量 
int level[N]; // 编号为i的老鼠参加的比赛轮数 (轮数越多排名就越靠前) 
int sumlevel[30]; // 参加比赛轮数大于i轮的老鼠的个数,前缀和吧 
vector <PII> thislevel, nextlevel; // 分别保存当前这轮参加比赛的老鼠的信息、获胜的老鼠的信息 

int main()
{
	cin >> n >> gp;
	for (int i = 0;i < n;i ++) cin >> w[i];
	for (int i = 0;i < n;i ++) cin >> o, thislevel.push_back ({w[o], o});	

	int lv = 1;
	while (thislevel.size() != 1) {
		for (int i = 0;i < thislevel.size();i ++) 
			level[thislevel[i].second] = lv; // 先把这轮的老鼠参加的轮数都赋值为lv,最后把获胜的老鼠的level再加一就行了 

		PII tp; // 保存每组最大老鼠的信息 
		for (int i = 0;i < thislevel.size();i ++) {
			if (i % gp == 0) {
				if (i) nextlevel.push_back (tp);
				tp = thislevel[i];
			} else tp = max (tp, thislevel[i]);
		}
		nextlevel.push_back (tp);
		
		for (int i = 0;i < nextlevel.size();i ++)
			level[nextlevel[i].second] = lv + 1; // 获胜的 
		
		sumlevel[lv] = nextlevel.size(); // 参加轮数大于lv的老鼠个数为进入到下一轮的老鼠数量 
		thislevel = nextlevel;
		nextlevel.clear ();
		lv ++;
	}
	
	for (int i = 0, flag = 0;i < n;i ++) {
		if (flag) cout << ' ';
		flag = 1;
		cout << sumlevel[level[i]] + 1;
	}
	
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1056 Mice and Rice (25 分) 的相关文章

  • Dapper 强类型查询返回默认对象值

    刚刚开始使用 Dapper 并喜欢它 我遇到了问题 它返回正确数量的对象 但它们的属性都有默认值 using var dbConnection Connection await dbConnection OpenAsync const st
  • 使用内部构造函数实例化类

    我有一个类 其构造函数被定义为内部 这意味着我无法实例化它 虽然这可能有道理 但出于调试和研究目的 我仍然愿意做一次 是否可以通过反射来做到这一点 我知道我可以访问私有 内部成员 但是我可以调用内部构造函数吗 或者 由于构造函数没有做任何重
  • 在两个 .cpp 文件之间定义全局变量 [重复]

    这个问题在这里已经有答案了 如何在 A cpp 和 B cpp 之间共享 全球化 bool 变量 其中它们都不包含其他 h 文件 他们有其他联合头文件 但彼此没有 我可以在这些共享标头中定义全局变量吗 Thanks 我可以在这些共享标头中定
  • 如何将 C++ 类包装在基于 C 的 dll 或基于 CLI 的 dll 中?

    我被告知将我用 C 编写的类导入到 dll 中 然后在 c 应用程序中使用该 dll 下列的本指南 https stackoverflow com questions 4555961 how to use a class in dll我创建
  • 为什么 LinkedList 通常比 List 慢?

    我开始在我的一些 C 算法中使用一些 LinkedList 而不是列表 希望能够加快速度 然而 我注意到他们只是感觉更慢 像任何优秀的开发人员一样 我认为我应该尽职调查并验证我的感受 所以我决定对一些简单的循环进行基准测试 我认为用一些随机
  • C++:获取注册表值仅给出第一个字符[重复]

    这个问题在这里已经有答案了 我试图从注册表中获取字符串值 但我只得到第一个字母 HKEY hKey char gamePath MAX PATH if RegOpenKeyEx HKEY CURRENT USER L Software Bl
  • 当我尝试使用 AVX 功能时,Clang 生成错误

    我使用的是 Windows 10 使用 Clang 版本 5 最近安装 当我编译以下内容时 define AVX define AVX2 include
  • CMake 警告:无法为目标生成安全的链接器搜索路径

    在为 pcl 项目运行 CMake 时 我收到一条警告消息 Configuring done CMake Warning at CMakeLists txt 12 add executable Cannot generate a safe
  • 未定义异常变量时通过引用捕获

    捕获异常时 标准指导是按值抛出 按引用捕获 据我了解 这有两个原因 如果由于内存不足异常而引发异常 我们将不会调用可能终止程序的复制构造函数 如果异常是继承层次结构的一部分 我们可能会对异常进行对象切片 如果我们有一个场景 我们没有在 ca
  • Windows 程序如何临时更改其时区?

    我写了一个函数来返回time t与给定日期的午夜相对应的值 当给定日期没有午夜时 它返回最早可用的时间 例如 当埃及进入夏令时时 这种情况就可能发生 今年 时间更改于 4 月 29 日晚上午夜生效 因此时钟直接从 23 59 转到 01 0
  • 基于 C++ 范围的 for 循环

    尝试使用基于范围的 for 循环执行某些操作 可以使用常规的 for 循环来完成 如下所示 vector
  • 使用对象列表构建树

    我有一个带有属性 id 和parent id 的对象列表 我想建造一棵树来连接那些孩子和父母 1 个父对象可以有多个子对象 并且有一个对象将成为所有对象的祖先 实现该功能最快的算法是什么 我使用 C 作为编程语言 但其他语言也可以 像这样的
  • 在非指针变量和类成员上放置 new

    考虑以下示例 include
  • 为什么在 .net 中使用 Invoke on Controls? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么 NET不允许跨线程操作 https stackoverflow com questions 2896504 why net does not allow cross thread operat
  • printf 参数不足

    我的问题是关于缺少参数的 printf 之后的行为 printf s blah blah d int integer was given as argument and not int written 我已经知道 如果格式参数不足 则行为是
  • 统一;随机物体移动[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在制作一款机器人战斗游戏 我希望敌人随机移动 然后有时会向敌人移动 我希望运动包含在其中的代码 else if avoid fal
  • 获取大于某个数字的元素个数

    我正在尝试解决以下问题 数字被插入到容器中 每次插入数字时 我需要知道容器中有多少元素大于或等于当前插入的数字 我相信这两个操作都可以以对数复杂度完成 我的问题 C 库中有标准容器可以解决这个问题吗 我知道std multiset可以在对数
  • 请解释为什么Java和C对此代码给出不同的答案

    public class Test public static void main String args int i 10 i i System out println value of i is i 输出是 10 当我在中执行类似的代码
  • 如何设置 Swashbuckle 与 Microsoft.AspNetCore.Mvc.Versioning

    我们有asp net core webapi 我们添加了Microsoft AspNetCore Mvc Versioning and Swashbuckle拥有招摇的用户界面 我们将控制器指定为 ApiVersion 1 0 Route
  • XmlDocument Save 使文件保持打开状态

    我有一个简单的 C 函数 可以创建一个基本的 XML 文件并保存 private void CreateXMlFile string Filename string Name string Company XmlDocument doc n

随机推荐

  • Python 算数运算符

    视频版教程 Python3零基础7天入门实战视频教程 Python支持所有的基本算术运算符 这些算术运算符用于执行基本的数学运算 如加 减 乘 除和求余等 下面是7个基本的算术运算符 以下 假设变量a为10 变量b为21 实例代码 定义变量
  • 安装vuecli3.0.3指定版本_CASTEP 19.1 linux学术版本安装教程

    1 CASTEP学术免费版本申请 CASTEP Cambridge Sequential Total Energy Package 的缩写 是一个基于密度泛函方法的从头算量子力学程序 典型的应用包括表面化学 键结构 态密度和光学性质等研究
  • 新手学Python开发的三大注意事项

    相信有不少刚刚开始学习Python的吧 前期可能繁琐的代码会让你想放弃这门技术 小编在此给大家列一个顺序 希望能够很好的帮助你坚持下去哦 1 学习目标 2 整体认知 3 学习路线 新手学Python开发的三大注意事项 学习要有目标这样在学习
  • 基础算法:整数二分——数的范围

    题目 给定一个按照升序排列的长度为 n 的整数数组 以及 q 个查询 对于每个查询 返回一个元素 k 的起始位置和终止位置 位置从 0 开始计数 如果数组中不存在该元素 则返回 1 1 输入格式 第一行包含整数 n 和 q 表示数组长度和询
  • 2021年Vue最常见的面试题以及答案(面试必过)

    Vue常见面试题 Vue的优点 说说你对SPA单页面的理解 它的优缺点分别是什么 SPA首屏加载速度慢的怎么解决 Vue初始化过程中 new Vue options 都做了什么 对MVVM的理解 Vue数据双向绑定原理 Vue的响应式原理
  • Java网络编程之带文件名的文件传输(服务器+客户端)

    Java网络编程之带文件名的文件传输 文章总览 作者的话 需求分析 客户端代码 服务器端代码 服务器线程定义 结语 文章总览 作者的话 最近做的某个项目涉及到这方面的内容 因有感写下这篇学习记录 希望能给和我一样正在学习java的朋友们起到
  • 网站云服务器资料本地备份,云服务器上备份本地数据

    云服务器上备份本地数据 内容精选 换一换 云服务器备份 CSBS Cloud Server Backup Service 提供对弹性云服务器 Elastic Cloud Server 和裸金属服务器 Bare Metal Server 的备
  • MySQL的主从模式搭建

    一 安装 MySQL 1 在虚拟机中先装两台 centos7 2 然后分别在两台 cnetos7 中安装 mysql 并配置好 mysql 的相关权限等 3 使用MySQL数据库连接工具 SQLyog 或者 Navicat 测试数据库的连接
  • 谷歌浏览器安卓版_安卓android版Chrome浏览器设置教程

    Google Chrome是一款由Google公司开发的网页浏览器 该浏览器基于其他开源软件撰写 包括WebKit 目标是提升稳定性 速度和安全性 并创造出简单且有效率的使用者界面 软件的名称是来自于称作Chrome的网络浏览器GUI 图形
  • Android集成常见问题

    本文介绍了Android SDK集成过程中可能出现的问题和解决方法 调用实人认证SDK 进入认证页面一直显示转圈加载 查看logcat日志 如果出现ErrorCode 202 则说明签名图片文件 yw 1222 0670 jpg 存在问题
  • 2021-02-28

    simulink控制器封装库 控制器封装库 一 封装库的安装和LADRC模块的使用
  • activiti7-2-流程定义、实例、任务查询、任务处理、压缩部署、定义查询、定义删除、定义资源查询、历史信息查询

    我是一个目录 1 流程定义 1 1 绘制流程图 1 2 简单介绍API和原理机制 1 2 1 API 1 2 2 原理机制 1 3 流程定义部署测试类 1 4 分析影响的表 2 流程实例 2 1 启动流程实例 2 2 分析影响的表 3 任务
  • windows 2003 传真服务器高级配置与管理

    这里我和大家一起来了解一下传真服务器的高级配置与管理 在上一博文中我说了 我们要实现电子邮件的通知和传真服务的控制台管理已经日志分析的功能 首先介绍的是windows 2003自带的传真服务器提供了SMTP支持传真到达通知的功能和传真发送成
  • 备战2024秋招面试题-最左匹配原则、索引失效情况、算法(最长回文子串)

    前言 textcolor Green 前言 前言 快秋招了 那么这个专栏就专门来记录一下 同时呢整理一下常见面试题 部分题目来自自己的面试题 部分题目来自网络整理 给我冲 学习目标 面试题 算法题 完成 学习目标 最左匹配原则 索引失效情况
  • 在微信小程序里面使用npm

    在微信小程序里面使用npm 从小程序基础库版本 2 2 1 或以上 及开发者工具 1 02 1808300 或以上开始 小程序支持使用 npm 安装第三方包 为了扩展微信小程序的功能 现在允许微信小程序使用npm 来扩展我们的功能 使用很简
  • 计算机三级网络技术备考复习资料

    以前用到的资料 偶尔翻翻还挺有用 记录之 第一章 计算机基础 分析 考试形式 选择题和填空题 6个的选择题和2个填空题共10分 都是基本概念 1 计算机的四特点 有信息处理的特性 有广泛适应的特性 有灵活选择的特性 有正确应用的特性 此条不
  • vue 测试环境 生产环境 线上环境 环境配置

    var env config dev name dev api url location protocol 10 0 0 230 80 api server url location protocol narcissus ih2ome cn
  • cpp 5.7

    5 7 include
  • 谈谈 Docker Volume 之权限管理(一)

    Volume数据卷是Docker的一个重要概念 数据卷是可供一个或多个容器使用的特殊目录 可以为容器应用存储提供有价值的特性 持久化数据与容器的生命周期解耦 在容器删除之后数据卷中的内容可以保持 Docker 1 9之后引进的named v
  • 1056 Mice and Rice (25 分)

    题目 题解 模拟 看懂题 自己实现就OK了 代码 include