题目描述

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

感谢yh大神指出样例数据的错误。

输入输出格式

输入格式:

一个k,0<k<14

输出格式:

一个m

输入输出样例

输入样例#1:

3

输出样例#1:

5

输入样例#2:

4

输出样例#2:

30

说明

0<k<14

分析:正解就是暴力.只要稍微优美那么一点点就能过了,最最最朴素的暴力就是枚举m,然后一位一位地挪,非常慢,正确的方法是直接取模,判断是不是坏人,每一个m最多走k次就会结束游戏,每次删除一个人后把起点变一下,模数变一下就好了.需要注意的一点是每个人的下标要从0开始,不然取模的时候可能会得到0,然后就炸了.

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>using namespace std;int k,m = 1,beginn = 1;
bool flag = false,flag2 = false;bool check(int mod)
{int t = (beginn + m - 1) % mod;if (t >= k){beginn = t;return true;} return false;
}int main()
{scanf("%d",&k);m = k;while (1){beginn = 0;flag2 = 0;for (int i = 0; i < k; i++){if (!check(2 * k - i)){flag2 = 1;break;}}if (!flag2)break;m++;}printf("%d\n",m);return 0;
}

转载于:https://www.cnblogs.com/zbtrs/p/7465075.html

洛谷P1145 约瑟夫相关推荐

  1. (枚举)[洛谷P1145约瑟夫]题解|CSDN创作打卡

      题意很简单,我们想到用枚举的方法来做,枚举m.由于好人有k个,所以至少从m=k+1开始枚举.   带着这个思路,我们开始写代码.这是我的第一个版本代码 #include <bits/stdc ...

  2. 洛谷 P1145 约瑟夫

     约瑟夫 n 个人站成一圈,从某个人开始数数,每次数到 m 的人就被杀掉,然后下一个人重新开始数,直到最后只剩一个人.现在有一圈人,k 个好人站在一起,k 个坏人站在一起.从第一个好人开始数数.你要确 ...

  3. 信息学奥赛一本通 2037:【例5.4】约瑟夫问题 | 1334:【例2-3】围圈报数 | 洛谷 P1996 约瑟夫问题

    [题目链接] ybt 2037:[例5.4]约瑟夫问题 ybt 1334:[例2-3]围圈报数 洛谷 P1996 约瑟夫问题 [题目考点] 1. 循环遍历数组 假设数组下标为1~n,循环控制变量i从1 ...

  4. 【每日一题】洛谷--P1996 约瑟夫问题 java题解

    文章目录 题目链接 题解 题目链接 洛谷–P1996约瑟夫问题 题解 约瑟夫问题细品一下,就是一个链表成环,根据规则要求逐渐remove的一个思路.代码详解如下: package com.compan ...

  5. 杀人游戏约瑟夫环(洛谷P1145题题解,Java语言描述)

    题目要求 题目链接P1145 约瑟夫环问题了解一下 约瑟夫环问题其实在数据结构里与单循环链表关系密切,但是这里模拟就完事~~ 我写过的约瑟夫环问题 AC代码(Java语言描述) import java ...

  6. 洛谷 1145约瑟夫

    打表: #include<iostream>//头文件 using namespace std;//命名空间 int num[14]={0,2,7,5,30,169,441,1872,76 ...

  7. C语言(C++)——洛古P1145 约瑟夫

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

  8. 队列模拟约瑟夫问题(洛谷P1996题题解,Java语言描述)

    题目要求 P1996题目链接 分析 以前就研究过"约瑟夫环"问题: <单循环链表求解约瑟夫环问题(Java语言描述)> <杀人游戏~约瑟夫环(洛谷P1145题题解 ...

  9. 洛谷题库答案(持续更新)

    p1000 超级玛丽游戏  洛谷 p1000 超级玛丽游戏_cyyyyds857的博客-CSDN博客 p1001 A+B problem  A+B problem_cyyyyds857的博客-CSDN ...

最新文章

  1. 【剑指offer】用两个栈实现一个队列
  2. 庆祝开博第一天!呵呵!
  3. C. Present(二分 + 扫描线)
  4. oracle 匿名段,这段匿名块看着没什么问题啊
  5. Python数据结构与算法(三)--数据结构的概念
  6. require()与 require_once()、 include与include_once()
  7. java beanshell_Java脚本-BeanShell
  8. 我的生信自学心得分享
  9. Java使用PDFBox API实现对PDF文档进行关键字检索
  10. almon多项式_计量经济学 总结.docx
  11. 重新学javaweb---cookiesession
  12. mysql操作语句类型DQL\DML\DDL\DCL
  13. 51单片机使用PWM调速
  14. 西南大学网络与继续教育学院课程考试试题卷
  15. SEO 搜索引擎优化 详解
  16. 网络:tcp长连接与短连接
  17. 浙江大学 工程伦理 第四章单元测试答案
  18. IT中小企业的股权激励方案设计
  19. QQ消息群发器实现原理及核心代码
  20. Libra: 一种新型金融基础设施尝试

热门文章

  1. JVM用户自定义加载器实现步骤
  2. mysql中的函数有哪些?(1.数字函数)
  3. MYSQL数据库默认latin1字符集转换为GBK或UTF8
  4. jmeter java接口,jmeter并发测试java接口 | 学步园
  5. 案例研究设计与方法-罗伯_旭进口重新设计-用户体验案例研究
  6. figma设计_如何在Figma中构建设计入门套件(第二部分)
  7. matlab绘制路线图_绘制国际水域路线图
  8. WCF 第四章 绑定 netMsmqBinding
  9. JavaScript逻辑运算符的使用技巧
  10. MySQL的命令合集