acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 正解

    #include <bits/stdc++.h> using namespace std; const int qmaxzie=1000000; int q[1000010]; int head,tail; void init(){ head=tail=0; } void push(int x){ tail=(tail+1)%qmaxzie; q[tail]=x; } void pop(){ head=(head+1)%qmaxzie; } int front(){ return q[(head+1)%qmaxzie]; } int beck(){ return q[tail]; } bool empty(){ return head==tail; } int size(){ return (tail+qmaxzie-head)%qmaxzie; } void clear(){ head=tail; } int main(){ init(); int n,k; cin>>n>>k; for(int i=0;i<n;i++){ push(i); } while(size()!=1){ for(int i=1;i<k;i++){ push(front()); pop(); } pop(); } cout<<front(); return 0; }

    userId_undefined

    我们是中国人

    倔强青铜
    23阅读
    0回复
    1点赞
  • 没骨头的看这里!

    #include <iostream> using namespace std; int josephus(int n, int m) { int pos = 0; // 最后剩下的人的位置 for (int i = 2; i <= n; ++i) { pos = (pos + m) % i; } return pos; } int main() { int n, m; cin >> n >> m; cout << josephus(n, m) << endl; return 0; }

    userId_undefined

    bkhl

    倔强青铜
    11阅读
    0回复
    0点赞
首页