luogu P1145 约瑟夫】的更多相关文章

题目描述 n个人站成一圈,从某个人开始数数,每次数到m的人就被杀掉,然后下一个人重新开始数,直到最后只剩一个人.现在有一圈人,k个好人站在一起,k个坏人站在一起.从第一个好人开始数数.你要确定一个最小的m,使得在第一个好人被杀死前,k个坏人先被杀死. 感谢yh大神指出样例数据的错误. 输入输出格式 输入格式: 一个k,0<k<14 输出格式: 一个m 输入输出样例 输入样例#1: 3 输出样例#1: 5 输入样例#2: 4 输出样例#2: 30 说明 0<k<14 枚举答案——检验…
P1145 约瑟夫 题目描述 n个人站成一圈,从某个人开始数数,每次数到m的人就被杀掉,然后下一个人重新开始数,直到最后只剩一个人.现在有一圈人,k个好人站在一起,k个坏人站在一起.从第一个好人开始数数.你要确定一个最小的m,使得在第一个好人被杀死前,k个坏人先被杀死. 感谢yh大神指出样例数据的错误. 输入输出格式 输入格式: 一个k,0<k<14 输出格式: 一个m 输入输出样例 输入样例#1: 复制 3 输出样例#1: 复制 5 输入样例#2: 复制 4 输出样例#2: 复制 30 说明…
暴力+模拟 #include<iostream> #include<cstring> using namespace std; int ans, k, k2; ]; bool f(int m){ ; memset(a, false, sizeof(a)); ; j < k; ++j){ //杀掉k个人 int n = m % (k2 - j); if (k2 - j <= m)n += k2 - j; //将圈子缩小 ; j <= n; ++j){ //模拟走到要…
题目描述 n个人站成一圈,从某个人开始数数,每次数到m的人就被杀掉,然后下一个人重新开始数,直到最后只剩一个人.现在有一圈人,k个好人站在一起,k个坏人站在一起.从第一个好人开始数数.你要确定一个最小的m,使得在第一个好人被杀死前,k个坏人先被杀死. 感谢yh大神指出样例数据的错误. 输入输出格式 输入格式: 一个k,0<k<14 输出格式: 一个m 输入输出样例 输入样例#1: 3 输出样例#1: 5 输入样例#2: 4 输出样例#2: 30 说明 0<k<14 屠龙宝刀点击就送…
题目描述 n个人站成一圈,从某个人开始数数,每次数到m的人就被杀掉,然后下一个人重新开始数,直到最后只剩一个人.现在有一圈人,k个好人站在一起,k个坏人站在一起.从第一个好人开始数数.你要确定一个最小的m,使得在第一个好人被杀死前,k个坏人先被杀死. 感谢yh大神指出样例数据的错误. 输入输出格式 输入格式: 一个k,0<k<14 输出格式: 一个m 输入输出样例 输入样例#1: 3 输出样例#1: 5 输入样例#2: 4 输出样例#2: 30 说明 0<k<14 分析:正解就是暴…
题目:https://www.luogu.org/problemnew/show/P1996 题意: 约瑟夫环.每次取出第m个,第2m个...... 思路: 链表维护.[感觉很少有用到链表.]非常经典的约瑟夫问题,用链表解决. #include<cstdio> #include<cstdlib> #include<map> #include<set> #include<iostream> #include<cstring> #incl…
https://www.luogu.org/problemnew/show/P1996 约瑟夫环这个问题一直以来都是用循环链表写的,今天才知道有循环队列的写法.以下是要点: 1.循环队列实现环的思想,其实就是队首元素出队,如果它不是该出队的元素,那么就把它继续push进queue,这样就构成了一个环的结构. 2.用一个辅助变量来记录每次要进行的操作,比如每三个人出来选出一个人,temp设置为2,先连续两次出队再入队,此时队首就是该出队的那个元素,把它直接pop扔掉即可.循环执行,直至所有元素出队…
https://www.luogu.org/problem/show?pid=1996||http://codevs.cn/problem/1282/ 题目背景 约瑟夫是一个无聊的人!!! 题目描述 n个人(n<=30000)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出圈,请输出依次出圈人的编号. 输入输出格式 输入格式: n m 输出格式: 出圈的编号 输入输出样例 输入样例#1: 10 3 输出样例#1: 3 6…
题目:P1996 约瑟夫问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 可恶啊,本来是一道不算难的题,硬是因为cin,cout同步流卡了我一天qwq 关闭cin,cout同步流后,就无法输出vector了 vector的erase时间复杂度是大于O(1)但小于O(n)的,总体来说不算慢 代码: #include <iostream> #include <vector> using namespace std; typedef long long ll; ve…
方法一.自定义的链表实现 package com.code.yuesefu; public class YueSeFuList { public static void main(String[] args) { ;//申请一个指定长度的链表 Node n = YueSeFuList.createNodes(count); ;i<count;i++){ Node second = n.next;//第2个 n = n.next.next;//第3个 System.out.println(n.it…