首页 > 编程语言 >打卡信奥刷题(114)用C++工具信奥P1145[普及组/提高] 约瑟夫

打卡信奥刷题(114)用C++工具信奥P1145[普及组/提高] 约瑟夫

时间:2024-10-25 18:20:56浏览次数:7  
标签:begin 信奥 int 样例 C++ result 打卡 find

约瑟夫

题目描述

n n n 个人站成一圈,从某个人开始数数,每次数到 m m m 的人就被杀掉,然后下一个人重新开始数,直到最后只剩一个人。现在有一圈人, k k k 个好人站在一起, k k k 个坏人站在一起。从第一个好人开始数数。你要确定一个最小的 m m m,使得在第一个好人被杀死前, k k k 个坏人先被杀死。

输入格式

一行一个整数 k k k。

输出格式

一行一个整数 m m m。

样例 #1

样例输入 #1

3

样例输出 #1

5

样例 #2

样例输入 #2

4

样例输出 #2

30

提示

0 < k < 14 0\lt k\lt 14 0<k<14。

C++实现

#include
#include
#include <bits/stdc++.h>

using namespace std;

int i,k,m,begin;
int check(int remain)
{
int result=(begin+m-1)%remain;
if(result>=k){
begin=result;
return 1;
}
else{return 0;}
}
int main(){
scanf("%ld",&k);
m=k;
int find =0;
while(find==0)
{
find=1;begin=0;
for(i=0;i<k;i++)
{
if(!check(2*k-i))
{
find=0;break;
}
}
m++;
}
printf("%d",m-1);
return 0;
}

在这里插入图片描述

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP C++考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容

标签:begin,信奥,int,样例,C++,result,打卡,find
From: https://blog.csdn.net/rogeliu/article/details/143210747

相关文章

  • Linux下使用valgrind分析C++程序的内存泄漏
    目录一.前言二.下载安装三.使用valgrind分析内存泄漏一.前言这篇文章介绍一下Linux系统中如何使用valgrind分析C++程序的内存泄漏。二.下载安装下载地址:官网。或者直接使用命令aptinstallvalgrind安装。三.使用valgrind分析内存泄漏先看代码//main.cpp#inc......
  • C++获取当前时间并格式化为字符串
    代码一#include<iostream>#include<chrono>intmain(){ autonowTime=std::chrono::system_clock::now(); autonowTimeT=std::chrono::system_clock::to_time_t(nowTime); autopNowTm=std::localtime(&nowTimeT); charbuf[128]; std::strfti......
  • c++/python/java/go用途介绍
    C++用途:系统编程:操作系统、驱动程序等底层开发。游戏开发:游戏引擎和高性能游戏应用,因其高效的性能和内存管理。嵌入式系统:适合资源受限的设备。科学计算:高性能计算和数值分析。金融系统:高频交易和复杂金融模型。Python用途:数据科学与分析:广泛用于数据处理和可视化......
  • 数据结构图的最短路径-弗洛伊德算法(有向图+数据结构课本C++代码一比一转C语言+邻接矩
    弗洛伊德算法有向图代码如下:#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<stdlib.h>#include<limits.h>#defineMaxInt32767#defineMVNum100intPath[MVNum][MVNum];//存放前驱索引的intD[MVNum][MVNum];//存放当前已知的权值//图的邻接......
  • C++矩阵乘法
    题目描述计算两个矩阵的乘法。n×m 阶的矩阵 A 乘以m×k 阶的矩阵 B 得到的矩阵 C 是n×k 阶的,且 C[i][j]=A[i][0]×B[0][j]+A[i][1]×B[1][j]+C[i][j]=A[i][0]×B[0][j]+A[i][1]×B[1][j]+ …… +A[i][m−1]×B[m−1][j](C[i][j]+A[i][m−1]×B[m−1][j](C[i][......
  • C++入门基础
    少年不惧岁月长,彼方尚有荣光在。  前言 这是我自己学习C++的第一篇博客总结。后期我会继续把C++学习笔记开源至博客上。C++的兼容性1.C++兼容绝大多数C语言的语法,因此只需要把.c后缀文件改为.cpp即可。 VS编译器看到是.cpp就会调用C++编译器编译。#define......
  • Go语言和C++在内存管理上的比较
    #Go语言和C++在内存管理上的比较在探讨Go语言和C++在内存管理上的比较时,我们可以从几个核心观点进行分析:自动内存管理、性能、安全性。在这些核心方面,Go语言通过其垃圾回收机制提供了相对于C++更为自动化的内存管理方式,这一点在开发大型应用时尤为重要。自动内存管理是Go语言......
  • VS Code 配置 C/C++ 开发环境
     一、下载编译工具MinGWgithub上的版本更新较快github 配置系统环境,并验证 二、VSCode 1、VSCode 安装C/C++相关扩展2.VSCode添加编译器、并运行调试Ctrl+Shift+p 进入C/C++编辑配置,修改编译器目录 运行1.cpp 执行 ......
  • 【31】C++项目练习
    定义一个类Book,用来描述新书, 具有以下功能:查看当前价格.查看当前的书号定义一个类SellBook,用来表示促销的书籍, 要求继承自Book类具有以下功能:查看当前折扣设置当前折扣查看当前的促销价格下面是我自编的代码Book类 .h#pragmaonce#include<string>usi......
  • C++宏和函数的比较
    在上一篇随笔中,我提到宏和函数是很相似的,那么在这篇中我会通过实例来体会宏和函数的异同。实例:分别用函数和带参的宏,从三个数中找出最大的数代码:点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defineCom(a,b,c){printf("%.3f\n",max(a,max(b,c)));}voidcomp......