vector例题:hdu4841圆桌问题

解题代码来源于一本书:《算法竞赛:入门到进阶》

圆桌上围坐着2n个人。其中n个人是好人,另外n个人是坏人。如果从第一个人开始数数,数到第m个人,则立即处死该人;然后从被处死的人之后开始数数,再将数到的第m个人处死……依此方法不断处死围坐在圆桌上的人。试问预先应如何安排这些好人与坏人的座位,能使得在处死n个人

之后,圆桌上围坐的剩余的n个人全是好人。

输入

多组数据,每组数据输入:好人和坏人的人数n(<=32767)、步长m(<=32767); 

输出

对于每一组数据,输出2n个大写字母,‘G’表示好人,‘B’表示坏人,50个字母为一行,不允许出现空白字符。相邻数据间留有一空行。

输入示例

2 3
2 4

输出示例

GBBG

BGGB

解题思路如下

创建数组,将索引值存入数组的值。这样在淘汰人之后,剩下的都是好人,剩下的数组的值就是原来的索引值(位置)

在从头循环人数一次,如果索引值等于上面剩下来的数组值,就是好人;反之为坏人

#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;int main() {//模拟圆桌vector<int> table;//n是好人数,m是步长int n, m;while (cin >> n >> m) {//先清空table.clear();for (int i = 0; i < 2 * n; i++) {//按顺序将索引入向量table.push_back(i);}int pos = 0;for (int i = 0; i < n; i++) {//每次淘汰的位置,圆桌pos = (pos + m - 1) % table.size();table.erase(table.begin() + pos);}int j = 0;for (int i = 0; i < 2 * n; i++) {//50字换行if ((i % 50) == 0 && i) {cout << endl;}//好人输出Gif (j < table.size() && i == table[j]) {j++;cout << "G";} else {cout << "B";}}cout << endl << endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/204199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python Numpy学习(1)

python: np.pad() 函数的用法 np.einsum(爱因斯坦求和约定) python编程之np.isnan()的用法 Python_Numpy库中各种矩阵基本运算 numpy基本加减和取行操作 numpy的加减乘除运算 NumPy 算术函数 TypeError: can’t convert cuda:0 device type tensor to numpy. Use Tenso…

了解linux网络时间服务器

本章主要介绍网络时间服务器。 使用chrony配置时间服务器 配置chrony客户端向服务器同步时间 20.1 时间同步的必要性 些服务对时间要求非常严格&#xff0c;例如&#xff0c;图20-1所示的由三台服务器搭建的ceph集群。 这三台服务器的时间必须保持一致&#xff0c;如果不一致…

【征稿倒计时十天】第三届高性能计算与通信工程国际学术会议(HPCCE 2023)

【有ISSN、ISBN号&#xff01;&#xff01;往届均已完成EI检索】 第三届高性能计算与通信工程国际学术会议(HPCCE 2023) 2023 3rd International Conference on High Performance Computing and Communication Engineering (HPCCE 2023) 2023年12月22-24日 | 中国哈尔滨 第三…

base64 转

$img_base64 substr($res[photo],strrpos($res[photo],,));$img_decode base64_decode($img_base64);$namess time().rand(10000,99999);$cc file_put_contents(img/avatar/.$namess..png,$img_decode);$urlsDS . img . DS . avatar/ .$namess..png;

CSS新手入门笔记整理:CSS溢出声名overflow

通常一个盒子的内容是被限制在盒子边框之内的&#xff0c;但是有时也会溢出&#xff0c;即部 分或者全部内容跑到盒子边框之外。 语法 元素{overflow:取值&#xff1b;} 属性值 说明 visible 若内容溢出&#xff0c;则溢出内容可见&#xff08;默认值&#xff09; hid…

Redis的数据类型以及如何解决大Key问题

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、Redis的数据类型 二、Big Key 2.1 什么是Big Key&#xff1f; 2.2 Big Key产生的场景&#xff1f; 2.3 如何识别Big Key&am…

面试——Java中实现多态的三要素,实现多态的机制是什么?

1.实现多态的三要素&#xff1a; 继承、重写、弗雷德引用指向子类的对象 2.实现多态的机制&#xff1a; 靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象&#xff0c;而程序调用的方法在运行期才动态绑定&#xff0c;就是引用变量所指向的具体实例对象的方法…

数据结构与算法-D5-D7线性表之链表

结点类型描述 程序编写 节点定义 linklist.h linklist.c list_create 1、申请内存 2、赋值 3、返回头结点 list_tail_insert 1、建立一个新结点 2、找尾结点 3、尾部插入 list_show list_insert 链表在某一位置的插入 1、调用算法list_get 2、插入 1&#xff09;新节点 2&a…

MySQL常见的存储引擎(InnoDB、MyISAM)data目录下(.frm,.myi,.myd)

查看支持的存储引擎 SHOW ENGINES;show variables like %storage_engine%; 看你的mysql当前默认的存储引擎:data目录 如果一个表同时有这3个文件&#xff0c;则存储引擎是myisam&#xff1a; &#xff08;1&#xff09;*.frm--表定义&#xff0c;是描述表结构的文件。 &#…

低代码(Low Code):美味膳食还是垃圾食品?如何入门低代码?

文章目录 低代码&#xff1a;美味膳食还是垃圾食品&#xff1f;1. 什么是低代码开发&#xff1f;2. 低代码开发的优势2.1 提高效率2.2 降低门槛 3. 低代码开发的挑战3.1 安全性问题3.2 可扩展性和灵活性问题 4. 低代码开发是美味膳食还是垃圾食品&#xff1f;5. 低代码能否替代…

【Android】查看keystore的公钥和私钥

前言&#xff1a; 查看前准备好.keystore文件&#xff0c;安装并配置openssl、keytool。文件路径中不要有中文。 一、查看keystore的公钥&#xff1a; 1.从keystore中获取MD5证书 keytool -list -v -keystore gamekeyold.keystore 2.导出公钥文件 keytool -export -alias …

基于超声技术的气体流量测量仪设计

摘要 科学地解决能源三气的计量问题&#xff0c;一直是业界困扰的问题。进入二十一世纪以来&#xff0c;用于测量气体流量的超声波流量计以其无压损、无阻力、量程比宽、受流体限制少等优点受到业界的广泛关注。随着国内人民生活水平的提高&#xff0c;科技不断地进步&#xff…

slurm学习(1)

slurm 指定节点SLURM 使用基础教程slurm节点,分区,作业信息说明slurm作业提交系统常用命令slurm nodelist中国科大超算中心用户使用手册slurm&#xff1a;使用nodelist中的任何节点SLURM 使用参考Slurm执行的CPU管理步骤 (我想提高我的cpu利用率来着&#xff0c;可是没看明白这…

iOS常用第三方框架

1、网路请求 -- Moya 2、数据存储处理 -- SQLite.swift 3、数据解析、转换 -- SwiftyJSON、ObjectMapper 4、对NSUserDefaults的封装 -- SwiftyUserDefaults 5、图片加载、处理 -- SDWebImage 6、轮播图 -- FSPagerView 7、键盘管理 -- IQKeyboardManagerSwift 8、弹框提…

天线是什么

天线 电子元器件百科 文章目录 天线前言一、天线是什么二、天线的类别三、天线的应用实例四、天线的作用原理总结前言 不同种类和设计的天线用于不同的应用领域,如广播、电视、无线通信、雷达、卫星通信、导航系统等。常见的天线类型包括柱状天线、片状天线、螺旋天线、饼叶天…

JavaScript <关于AES/DES`代码+白话`讲解和对比>--案例(四)

前言: 有XX私信,说他对于aes和des的解密有点混淆;说实话,我当初也混淆.其实案例搞多了,就清楚了;但是,今天把它稍微梳理一下,整理出来,对你对我都是交代; 正文: AES&#xff08;Advanced Encryption Standard&#xff09;和 DES&#xff08;Data Encryption Standard&#xf…

Node.js快速搭建简单的HTTP服务器并发布公网远程访问

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

TCP传输的三次握手四次挥手策略

TCP传输的三次握手四次挥手策略如下&#xff1a; 第一次握手&#xff1a;客户端发送一个带有SYN标志的数据包给服务器&#xff0c;并记为SYN_Client。第二次握手&#xff1a;服务器收到SYN_Client后&#xff0c;向客户端发送一个带有SYN和ACK标志的数据包&#xff0c;记为SYN_…

西工大计算机学院计算机系统基础实验一(函数编写15~17)

还是那句话&#xff0c;稳住心态&#xff0c;稳住心态&#xff0c;稳住心态。心里别慌&#xff0c;心里别慌&#xff0c;心里别慌。 第15题&#xff0c;howManyBits&#xff0c;返回用二进制补码形式表示x所需的最小二进制位数。比如howManyBits(12) 5&#xff0c;12可以被表…

初学vue3与ts:vue3选项式api获取当前路由地址

vue2的获取方法 this.$route.pathvue3选项式api获取方法 import { useRouter } from vue-router; const router useRouter(); console.log(router) console.log(router.currentRoute.value.path)