首页 > 编程语言 >算法刷题记录:NC22227 约瑟夫环

算法刷题记录:NC22227 约瑟夫环

时间:2023-05-23 13:46:38浏览次数:35  
标签:include int NC22227 pos 约瑟夫 st 刷题

题目链接

https://ac.nowcoder.com/acm/problem/22227

解题思路

模拟环。
这道题顺序数就行,顺序是逆时针,逆时针的箭头是往左拐的,变成直线后趋于正半轴所以是 +
不过,这道模拟环并没有说从idx号开始,往左/右数几个人,所以不需要考虑 +-
因为不会越界,所以也不用额外%n

AC代码

#include <iostream>
#include <vector>

using namespace std;

int n, st, m, i;
vector<int> v;

int main()
{
    while (cin >> n >> st >> m)
    {
        v.clear();
        for (int i = 1; i <= n; ++ i) v.push_back(i);

        int pos = st - 1;
        for (int i = n - 1; i >= 0; -- i)         // 赶走n-1个人,会被淘汰n-1次
        {
            pos = (pos + m - 1) % v.size();       // 每次从第pos个人开始,m-1:下标应当从0开始
            v.erase(pos + v.begin());             // 删除第pos个人
        }
        cout << v[pos] << endl;
    }
}

标签:include,int,NC22227,pos,约瑟夫,st,刷题
From: https://www.cnblogs.com/ClockParadox43/p/17424444.html

相关文章

  • 23-05-20 刷题
    练习英文描述算法88.MergeSortedArray-LeetCode【easy】classSolution{publicvoidmerge(int[]nums1,intm,int[]nums2,intn){//twopointers,initiallyi,jpointstothelastnumberofthearray(m-1,n-1)//usektorecordth......
  • 刷题笔记:Luogu P3743
    题目传送门Solution最多能将这些设备一起使用多久,显然答案满足单调性(如果\(x<y\)而不能使用\(x\)时间则一定不能使用\(y\)时间)通俗一点,就是前边的时间不满足则后边一定不满足,也就是局部答案舍弃性,考虑二分时间至于check怎么写呢?和奶牛晒衣服有异曲同工之妙,若设二分出来的时间......
  • re刷题记录
    re刷题记录[SWPUCTF2021新生赛]re1无壳,直接ida打开,main找到关键语句 f5查看伪代码 选中代码中的一些数字并按“R”,可以查看对应的字符strcmp()函数:strcmp函数是stringcompare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,st......
  • 刷题笔记:Luogu P1083 借教室
    题目传送门让结果最接近\(s\)值,显然我们要二分\(w\),check的写法可以直接暴力模拟,如果check(mid)<s则将r右移(通过读公式可以知道\(w\)越小检验值\(y\)就越大)但是这样会TLE,再读一下柿子:\(y_i=\sum\limits_{j=l_i}^{r_i}[w_j\geW]\times\sum\limits_{j=l_i}^{r_i}[w_j\geW]......
  • 2023-05-17 刷题
    算法题目1:【Mid】47.全排列II思路分析:将原问题转换成子问题,先不考虑重复元素,例如P{1,2,3}={"1"+P{2,3},"2"+P{1,3},"3"+P{1,2}}。之后再考虑重复元素。怎么枚举?枚举每个位置可以填哪些数。【这种枚举方式能保证字典序,除此外,还有一种,枚举每个数可以放到哪个位置上,......
  • 刷题笔记:P4452 [差分]
    题目传送门:https://www.luogu.com.cn/problem/P4552一道非常巧妙的差分。我们先来讲一下样例:原数组:1122差分后:1010这时,我们发现,若满足数组中所有数都相等,则必须将差分数组除第一位以外的数都变成0我们怎么用最小的次数将差分数组变成零呢?这个样例不算明显,我们再造一......
  • 算法刷题系列之移除元素:快慢指针技巧
    题目+日期移除元素2023年5月14日17点50分基础知识暴力解法这个题目暴力的解法就是两层for循环,一个for循环遍历数组元素,第二个for循环更新数组。双指针法(快慢指针法)通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。定义快慢指针快指针:寻找新数组的元......
  • pwn刷题笔记
    jarvisoj_level2(ret2text)checksec检查保护机制,开启了NX。vulnerable_function函数处存在栈溢出漏洞:buf只能存放0x88个字节,但可以读入0x100个字节。system函数plt地址:0x8048320ida查看字串,“/bin/sh”地址:0x804A024构造payload#!/usr/bin/envpython3frompwnimport*io......
  • MISC刷题心得 与百度,谷歌,github语法总结
    MISC介绍:MISC,中文即杂项,包括隐写,数据还原,脑洞、社会工程、压缩包解密、流量分析取证、与信息安全相关的大数据等。竞赛过程中解MISC时会涉及到各种脑洞,各种花式技巧,主要考察选手的快速理解、学习能力以及日常知识积累的广度、深度。misc几种常见格式文件头:png:89504E47jpg:FFD......
  • OJ刷题之旅
    题目描述wzazzy先将天上n个星星排成一排,起初它们都是暗的。他将挥动n次魔法棒,第i次挥动会将编号为i的正整数倍的星星的亮暗反转,即亮的星星转暗,暗的星星转亮。wzazzy想问,最终会有多少个星星依旧闪亮在天空。输入一个整数n,含义请见题目描述。1<=n<=1e18输出一个整数ans,即n次操......