当前位置: 首页 > news >正文

1012:Joseph

网址如下:

OpenJudge - 1012:Joseph

其中一个解法

只想到了一个快速找到下一位处决的人的方法,本质上还是遍历,暂时没想到更优的方法了

代码如下:

#include<cstdio>
int k;bool judge(int tt, int m, int r){if(tt == k) return true;int num = (m - r) % tt; num = num ? num : tt;if(num <= k) return false;return judge(tt - 1, m, tt - num);
}int main(void)
{while(scanf("%d", &k) && k){for(int m = 1; ; m++)if(judge(k * 2, m, 0)){printf("%d\n", m); break;}}return 0;
}

快速找到下一个处决的人的方法

从我的代码可以看出来,用了一个递归函数进行判断该m行不行,因为k小于13,所以递归层数最多到14个,不用担心栈堆段内存爆炸

先说说各个变量代表的意义:

tt:剩下的总人数

m:和题目的m一样

r:在上次处决之后,处决的人的后面的坏人数(到第一个好人出现为止)

num:这次要处决的编号

简单来说就是保持队列的第一个是编号为1的好人,这样就可以直接取余得出要处决的人的编号,只需注意一下刚好整除的情况就行了

http://www.lryc.cn/news/384674.html

相关文章:

  • 【高级篇】备份与恢复:守护数据的长城(十一)
  • Docker构建多平台镜像
  • 群体优化算法---石墨烯优化算法介绍以及在期权定价上的应用(Black-Scholes模型来计算欧式期权的理论价格)
  • 创纪录!沃飞长空完成新一轮融资,实力获资方认可
  • 1991java Web体检预约管理系统eclipse定制开发mysql数据库BS模式java编程jdbc
  • 如何优雅终止线程/线程池
  • 泰迪智能科技实验室产品-云计算资源管理平台介绍
  • .Net WebApi启动 Swagger异常报错: Failed to load API definition
  • CSS新手入门笔记【导入方法、选择器介绍、选择器优先级、属性详细介绍、盒子模型】
  • 制作高校专属PPT时,如何将校徽设置成透明底色?无须PS
  • 设计模式之【适配器模式】
  • AI论文降重:一键操作,让你的论文查重率瞬间下降
  • Cmake--学习笔记
  • LangChain让LLM带上记忆
  • Word恢复历史文档,记好4个方法就足够
  • 收银系统源码-千呼新零售2.0【线上营销】
  • OnlyOffice测评
  • UDS - 8 Application layer protocol
  • 二叉树公共最近祖先
  • 智慧运维系统指导规范
  • 最新自助下单彩虹云商城系统源码,含小储云商城模板免授权
  • 头条系统-05-延迟队列精准发布文章-概述添加任务(db和redis实现延迟任务)、取消拉取任务定时刷新(redis管道、分布式锁setNx)
  • .gitignore git添加忽略文件
  • 面向遥感图像的多阶段特征融合目标检测方法
  • 操作系统面试篇一
  • OPenFast软件中的NRELOffshrBsline5MW_Onshore_ServoDyn.dat文件详解
  • 搭建rtmp/rtsp流媒体服务器的步骤
  • vue自定义事件传递数据
  • TensorBoard 安装与启动
  • 云计算运维工程师的突发状况处理