UVa 133 The Dole Queue(圈的下标处理)

2023-10-27

本题难点在于用数组处理圈状物时下标的计算。

#include <cstdio>
#include <string.h>
using namespace std;

const int maxn=25;

int main(){
    int n,k,m;
    while(scanf("%d%d%d",&n,&k,&m)==3&&n){
    int people[maxn];
    memset(people,0,sizeof(people));
    int currA=0,currB=n+1,left=n;     //用left记录剩下的人,作为循环终止的条件 
    while(left){
    //利用下标模拟官员AB的运动 
    int i=k,j=m;
    while(i) {currA=(currA+1+n-1)%n+1;if(!people[currA])i--;}
    while(j){currB=(currB-1+n-1)%n+1;if(!people[currB])j--;}
    if(currA==currB){
        people[currA]=1;
        left--;
        printf("%3d",currA);
    }
    else{
        people[currA]=people[currB]=1;
        left-=2;
        printf("%3d%3d",currA,currB);
    }
    if(left) printf(",");    //输出的处理,别怕“,” 
    }   
    printf("\n");   
 }
 return 0;
} 

注意点:

  1. 变量left的应用
    相较于用left简洁明了,自己通过遍历整个数组来判断循环是否应该结束的方法麻烦冗长而且使“,”的打印不便。
    bool End=false;
    ……
    for(int a=1;a<=n;a++){
        if(!people[a]) break;
        if(a==n) End=true;
    }

启示:当循环与当且有效的元素个数(本题是还没有出队的人)有关时,可以设置一个计数变量

2.“,”的打印
首先克服自己看到这样的输出:完整的一个输出需要分段输出,且中间不是换行而是空格、逗号等而且还要求不能多输出空格、逗号(如本题一次输出的最后不在需要逗号)时的恐惧感。
接下来是解决方案:
仔细分析“,”或者空格出现的条件,或者说是与输出正文的关系; 直接用语句printf(“,”);(怕啥,不就是一句话的事吗= =)

3.圈状循环数组的下标处理:
利用取余运算,关注头尾的处理。
然后本题中,对于currA、currB的处理,之前是这么写的:

    while(i) {currA++; if(!people[(currA+1+n-1)%n+1])i--;}

currA++ 会使currA一直增加而不是循环。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UVa 133 The Dole Queue(圈的下标处理) 的相关文章

  • CSU 1333 & Uva 12661 Funny Car Racing【最短路变形+spfa算法,链式前向星建图】

    Funny Car Racing Memory Limit 131072KB64bit IO Format lld amp llu Status Description There is a funny car racing in a ci
  • UVA-11300

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • UVA-11520 Fill the Square

    思路 xff1a 因为要求是字典序 xff0c 这道题的第一反应就是从A Z选取字母 xff0c 在正方形中从上到下 xff0c 从左到右这样的顺序去填字母 xff0c 一旦判断这个字母旁边没有和它一样的 xff0c 那么就证明这个字母就是
  • uva 120(排序,检索)

    题目 Stacks and Queues are often considered the bread and butter of data structures and find use in architecture parsing o
  • UVa 133 The Dole Queue(圈的下标处理)

    本题难点在于用数组处理圈状物时下标的计算 include
  • UVA-1354 天平难题 题解答案代码 算法竞赛入门经典第二版

    GitHub jzplp aoapc UVA Answer 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 这道题需要 1 遍历二叉树的每种构成方式 我这里每次把当前所有结点列出 然后遍历选取两个组合构成一个新结点 原来的结点剔除 新结点
  • Uva 489 Hangman Judge

    本题不难 但是我花了一个学期才AC 找到原因后想狠狠地揍自己一顿 原来是输出的一个单词拼错了 一直在解题思路和细节上找问题的我还曾吐槽这是什么脑残游戏 以后需细心 include
  • UVa1347 Tour

    题目描述 这道题我想了很久都没有想到 看了lrj的题解才会做 首先可以想到转化成两个人向右走 关键在于状态的设计 设 f i j f i j 为走完了前 max i j max i j 的点 且两个人分别在i j的位置 且 i gt j i
  • UVa 12955 Factorial

    Problem uva onlinejudge org index php option com onlinejudge Itemid 8 page show problem problem 4834 开始想多了 想着不能简单贪心 要用dp
  • uva11292 Dragon of Loowater (水题)

    include
  • uva 1601 The Morning after Halloween

    题目 The Morning after Halloween 题意 有n个用小写字母表示的鬼和一张地图 每个鬼都要移动到对应的大写字母 两个鬼的位置不能在一次移动中交换 问最少步数 思路 bfs 1 先将地图用图的方法表示 即在每一个空白
  • 竖式问题

    找出所有形如abc de 三位数乘以两位数 的算式 使得在完整的竖式中 所有数字都属于一个特定的数字集合 输入数字集合 相邻数字之间没有空格 输出所有竖式 每个竖式前应有编号 之后应有一个空行 最后输出解的总数 具体格式见样例输出 为了便于
  • UVA 10010 - Where's Waldorf? 题解

    Time limit 3 000 seconds Where s Waldorf Given a m by n grid of letters and a list of words find the location in the gri
  • UVa 120 Stacks of Flapjacks

    Background Stacks and Queues are often considered the bread and butter of data structures and find use in architecture p
  • linux--shell错误:syntax error near unexpected token ‘('

    这几天编写了几个简单的shell程序 然后都出现了syntax error near unexpected token 的错误 然后实在是检查不出错误 后面百度了才找到的原因 之前错误的程序片段如下 usr whoami dr pwd 提示
  • 数据统计(基于文件输入输出)

    输入一些整数 求出它们的最大值 最小值 平均值 保留三位小数 输入保证这些数都是不超过1000的整数 样例输入 2 8 3 5 1 7 3 6 样例输出 1 8 4 375 基于文件重定向 define LOCAL 作用 仅在本机使用重定向
  • Uva 10474 Where is the Marble?(排序与检索)

    本题若掌握了sort 和lower bound 两个函数 就无难点 include
  • UVA-11059 最大乘积 题解答案代码 算法竞赛入门经典第二版

    GitHub jzplp aoapc UVA Answer 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 数据量不大 暴力即可 include
  • UVa10881题解报告

    题目 L长的棍子上有n个蚂蚁 他们分别向左或右爬 速度为1 求T时间后各蚂蚁的状态 题解 白书给出了一个很巧妙的解法 将蚂蚁看作质点 相撞掉头等于对穿而过 因为掉头所以 他们最后的顺序与输入时在棍子上的顺序相同 所以只要记录下初始状态下蚂蚁
  • UVA 1347 Tour

    描述 Click Here quad 给定平面上n n lt 1000 个点的坐标 按照x递增的顺序给出 各点x坐标不同 且均为整数 你的任务是设计一条路线 从最左边的点出发走到最右边的点再返回 要求除了最左边和最右边之外 每个点恰好经过一

随机推荐

  • kudu : 扩容报错 Bad status: Not found: Unable to initialize catalog manager

    文章目录 1 美图 2 背景 1 美图 2 背景 kudu 原本只有一个master 和一个 tableServer 现在我想扩容成3个master 3个tableServer 然后报错了 错误信息如下
  • C++递推经典案例No.1——青蛙跳台问题

    一只青蛙一次可以跳上1级台阶 也可以跳上2级台阶 求该青蛙跳上一个 n 级的台阶总共有多少种跳法 这是一个经典的递归 动态规划的例题 代码部分并不难 关键是要理清思路 由于每次可以跳1个或者两个 所以跳到当前台阶的来源只有两种 下一个和下两
  • Android Studio 修改AVD模拟器文件默认存储路径

    AndroidStudio默认的模拟器文件路径为 C Users 用户名 android avd路径 通常windows系统上 C盘不是太大 而avd文件却不小 通常几个GB 所以有必要将avd路径换到一个非系统盘 更换方法如下 Help
  • sql 列名无效

    在SQLServer2008中 当设计 修改 表结构之后 再用SQL语句时 列名会显示无效 但执行可以通过 如下图 原因是SQL Server的intellisense 智能感知功能 需要重新整理一下 用快捷键Ctrl Shift R即可
  • YOLO:使用cv旋转图片,绘制最小矩形框,生成txt数据集,可用于yolo训练模型

    目录 一 前期的目录准备 二 代码部分需要用到的cv函数 三 cv部分函数参数详情 四 旋转方式 五 代码部分 六 代码完整版 一 前期的目录准备 创建一个名为rice的目录 在此下创建arborio basmati等五类米的子目录 并且分
  • (Android版)AR 现实增强 高通 Vuforia QCAR SDK环境搭建

    1 下载高通SDK 高通刚刚才更新开发中心地址 版本更新为V2 0 https developer vuforia com resources sdk android 下载对应系统的安装程序 下载完成后 你就下一步下一步安装吧 2 编译QC
  • Zotero使用

    zotero使用 实验平台 Zotero安装 导入文献到Zotero 设置PDF文件保存位置 Zotfile插件安装 Zotero文献同步 在Zotero中导入PDF翻译插件 参考文献 实验平台 Windows10 Mac平台有些设置的名字
  • Azkaban的囚徒——Azkaban运行模式和流

    文章目录 Azkaban运行模式 Azkaban运行 Azkaban 流 Job Dependency Azkaban运行模式 在3 x版本里 提供了3种运行模式 the stand alone solo server mode stand
  • 服务器安装系统要如何载入驱动程序,Dell 服务器安装Windows 2008 R2时手动加载阵列卡驱动...

    使用操作系统光盘或U盘安装操作系统 需要事先准备好对应的阵列卡驱动 安全完成后需要自行手动加载主板 显卡 网卡驱动 1 开机之后通过界面提示通过键盘按下 F11 进入 Boot Manager 选择启动选项 2 在 Boot Manager
  • Oracle 数据库索引扫描方式

    1 索引范围扫描 Index Range Scan 当我们在查询操作中使用了 WHERE 子句进行范围查询时 Oracle 数据库会使用索引范围扫描方式 这种扫描方式通过索引键值的范围来定位需要的数据 例如 我们有一个名为 orders 的
  • 2012.11.20

    昨晚到23 50 实在是困了 于是睡了 发现 杆9其实是个虚拟杆 也就是说 相当于一个辅助线 不INITGEOMETRY 不绘制 只计算 现在设定P1的点 根据余弦定理求出 三角形P1P2P3中 P2对应的角度 a 2 b 2 c 2 2b
  • 为学生夫妻安排一间宿舍两张床,武大的回应亮了

    来源 中国青年报综合自武汉大学官微 身高太高 睡不下宿舍的床咋办 行动有障碍 不方便睡上下铺咋办 第一次来到南方 湿度太大怎么晾衣服 学生夫妻可以申请合宿吗 这两天 武大 宿舍定制服务 在网上刷屏 引发关注 1 学校为 持证上岗 的夫妻档准
  • python3+robotframework+selenium3 浏览器兼容性测试

    robot framework 测试浏览器兼容性 目前ride已支持一下浏览器 firefox ie chrome safari 本次我们已win 10中的ie为例 来看看如何使用python3 robotframework seleniu
  • 一次SpringBoot版本升级,引发的血案

    前言 最近项目组升级了SpringBoot版本 由之前的2 0 4升级到最新版本2 7 5 却引出了一个大Bug 到底是怎么回事呢 1 案发现场 有一天 项目组的同事反馈给我说 我之前有个接口在新的测试环境报错了 具体异常是 Missing
  • Git基本操作命令

    目录 一 简介 二 基本命令使用 1 git add 将该文件添加到暂存区 2 git status 命令用于查看在上次提交之后是否有对文件进行再次修改 3 git diff 比较文件在暂存区和工作区的差异 4 git commit 将暂存
  • [NOIP2014]珠心算测验 T1

    珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术 珠心算训练 既能够开发智力 又能够为日常生活带来很多便利 因而在很多学校得到普及 某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法 他随机生成一个正整数集合 集合中的
  • go Hijack

    golang GO语言 http详解简单基础 1 因为好像长时间的写PHP可能大家感觉烦躁了 所以写一点golang的东西大家可以拿去玩玩 golang在web开发中让你得心应手 其实也是很好的东西 只要你玩进去之后感觉好爽 感觉比PHP的
  • 网络安全笔记5——数字签名

    网络安全笔记5 数字签名 参考课程 中国大学MOOC 网络安全 北京航空航天大学 文章目录 网络安全笔记5 数字签名 基本概念 分类 数学表示 RSA数字签名机制 ElGamal数字签名机制 Schnorr数字签名机制 DSS数字签名机制
  • 未能找到任何适合于指定的区域性或非特定区域性的资源

    试了所有的方法都不行 最后把resx文件删了 重新添加图片图标 ok
  • UVa 133 The Dole Queue(圈的下标处理)

    本题难点在于用数组处理圈状物时下标的计算 include