首页 > 其他分享 >AcWing 3559. 围圈报数

AcWing 3559. 围圈报数

时间:2023-10-29 13:11:57浏览次数:39  
标签:cout int ne 3559 cin 链表 围圈 AcWing

考点:约瑟夫环问题,环形链表,队列

#include <bits/stdc++.h>
using namespace std;

const int N = 55;
int ne[N];//链表指针数组

int main()
{
    ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
    int t;
    cin >> t;
    while (t--)
    {
        int n;
        cin >> n;
        for (int i = 1; i < n; i++) ne[i] = i + 1;//环形链表初始化,1->2, 2->3,...
        ne[n] = 1;//最后一个点指向1
        
        int p = n;//p初始时指向1的前一个数。
        while(n--)
        {
            p = ne[ne[p]];//走两步(数到三时删除)
            cout << ne[p] << ' ';
            ne[p] = ne[ne[p]];//改变环形结构,相当于把报数到3的人踢出
        }
        cout << '\n';
    }
    return 0;
}

标签:cout,int,ne,3559,cin,链表,围圈,AcWing
From: https://www.cnblogs.com/pangyou/p/17795776.html

相关文章

  • Acwing127周赛第三题 构造矩阵 (套路)
    题目链接:构造矩阵题目描述我们希望构造一个n×m的整数矩阵。构造出的矩阵需满足:每一行上的所有元素之积均等于k。每一列上的所有元素之积均等于k。保证k为1或−1。请你计算,一共可以构成出多少种不同的满足条件的矩阵。由于结果可能很大,你只需要输出对109+7......
  • Acwing.第126场周赛
    Acwing.第126场周赛比赛链接之前忘记整理上传了,不能有遗留问题A.蜗牛爬井蜗牛在n米深的井底往上爬,每天清晨到傍晚向上爬5米,夜间又滑下来4米,请问像这样从某天清晨开始,第几天爬到井口?输入格式一个正整数n。输出格式一个整数,表示爬到井口的天数。思路:就是一个比较简答......
  • acwing367证明
    首先,\(max(p,q)\)是下界,因为连一条边最多只能减少一个零入度点和一个零出度点,而最终的图不可能有哪怕一个零出度点或者零入度点(最后的图刚好就是一个点)根据这个下界,我们也很容易可以构造出来一种方法,让零出度点和另一个SCC的零入度点相连即可,就像下面一样(红色边是添加的边)......
  • Acwing393. 雇佣收银员 题解 差分约束
    题目链接:https://www.acwing.com/problem/content/description/395/解题思路:差分约束。为了方便起见,定义第\(i\)个时间段为\(i-1:00\)到\(i:00\)首先,为了方便开一个额外的点,令\(R_i\)对应为题目中的\(R(i+1)\),即\(R_i\)表示\(i-1:00\)到\(i:00\)这个时间段的最小需求......
  • acwing318 划分大理石
    有价值分别为1..6的大理石各a[1..6]块,现要将它们分成两部分,使得两部分价值之和相等,问是否可以实现。其中大理石的总数不超过20000。输入格式输入包含多组数据!每组数据占一行,包含6个整数,表示a[1]∼a[6]。当输入为000000时表示输入结束,且该行无需考虑。输出......
  • AcWing 902. 最短编辑距离
    题目给定两个字符串$A$和$B$,现在要将$A$经过若干操作变为$B$,可进行的操作有:删除–将字符串$A$中的某个字符删除。插入–在字符串$A$的某个位置插入某个字符。替换–将字符串$A$中的某个字符替换为另一个字符。现在请你求出,将$A$变为$B$至少需要进行多少次操......
  • 对acwing355异象石引理的证明
    首先我们抽象一下这道题的模型,然后把引理记住模型:对于一棵树上选定的一些点,把他们连通起来的最小边数我们先考虑一种朴素做法,对于任何一种方案,任取其中两个点,那么这个方案一定包含这两个点之间的路径就是说,我们依次添加每个点,对于每一个新添加进来的点,让这个点与其已经添加的点......
  • Acwing 最长上升子序列
    题目给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数N。第二行包含N个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围1≤N≤1000−10^9≤数列中的数≤10^9输入样例:73121856输出样例:4题解......
  • Acwing 800.数组元素的目标和,双指针初步
    Acwing800.数组元素的目标和给定升序的有序数组A(长度为n),B(长度为m)以及目标值x,求出满足\(A[i]+B[j]=x\)的数对\((i,j)\),题目保证仅有唯一解输入样例:456124734689输出样例:11双指针来做定义指针i,j,其中i指向A,j指向B,且i=0,指向A的首元素,j=m-1,指向B的末......
  • 题解 AcWing 1272. 与众不同
    题目描述定义完美序列:若一个序列内没有重复的数,称这个数列为完美数列。每次给定一个区间\([l,r]\),求这个区间内最长的完美序列长度。具体思路设\(len_i\)表示从\(i\)出发往右的最长完美序列长度。我们定义一个指针\(st\),表示当前枚举的区间左端点,同时定义多一个指针\(......