2021-03-27

简介: 问题 A: DS循环链表—约瑟夫环(Ver. I - A)时间限制: 1 Sec 内存限制: 128 MB

问题 A: DS循环链表—约瑟夫环(Ver. I - A)

时间限制: 1 Sec  内存限制: 128 MB

提交: 269  解决: 132

[提交][状态][讨论版]


题目描述

N个人坐成一个圆环(编号为1 - N),从第S个人开始报数,数到K的人出列,后面的人重新从1开始报数。问最后剩下的人的编号。


例如:N = 3,K = 2,S = 1。2号先出列,然后是1号,最后剩下的是3号。


要求使用循环链表实现。


输入

第一行输入t,表示有t个测试用例;


第二行起,每行输入一组数据,包括3个数N、K、S,表示有N个人,从第S个人开始,数到K出列。(1 <= N <= 10^6,1 <= K <= 10,  1 <= S <= N)


输出

出列的人的编号


样例输入

2 13 3 1 3 2 1


样例输出

3 6 9 12 2 7 11 4 10 5 1 8 13


2 1 3

#include<iostream> 
using namespace std;
class ListNode
{
  int data;
  ListNode *next;
  friend class linklist;
};
class linklist {
  int len;
  ListNode *head;
public:
  int n, k, s;
  linklist() {
  head = new ListNode();
  }
  ~linklist() {
  delete head;
  }
  void createlist() {
  len = n;
  ListNode *p, *q;
  p = head;
  for (int i = 1; i <= n; i++) {
    q =new ListNode();
    q->data = i;
    p->next = q;
    p=p->next;
  }
  p->next = head;
  }
  void gg() {
  ListNode *p,*q;
  p = head;
  for (int i = 0; i < s - 1; i++) {
    p = p->next;
  }
    while (len) {
    if (p->next == head)
      p = p->next;
    q = p->next;
    for (int i = 0; i < k - 1; i++) {
      p = p->next;
      if (p->next == head)
      p = p->next;
    }
    q = p->next;
    cout << q->data << " ";
    p->next = q->next;
    delete q;
    len--;
    }
    cout << endl;
  }
};
int main() {
  int t;
  linklist list;
  cin >> t;
  while (t--) {
  int N, K, S;
  cin >> N >> K >> S;
  list.n = N;
  list.k = K;
  list.s = S;
  list.createlist();
  list.gg();
  }
}


相关文章
|
21小时前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1050 0
|
9天前
|
人工智能 运维 安全
|
21小时前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
238 0
|
7天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
8天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
702 23