洛谷P1996 约瑟夫问题【链表】
题目:https://www.luogu.org/problemnew/show/P1996
题意:
约瑟夫环。每次取出第m个,第2m个......
思路:
链表维护。【感觉很少有用到链表。】非常经典的约瑟夫问题,用链表解决。
#include<cstdio>
#include<cstdlib>
#include<map>
#include<set>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
#include<cmath>
#include<stack>
#include<queue> #define inf 0x7fffffff
using namespace std;
typedef long long LL;
typedef pair<string, string> pr; int n, m;
const int maxn = ;
struct node{
int id;
int nxtid;
}nodes[maxn]; int main()
{
scanf("%d%d", &n, &m);
nodes[].nxtid = ;
for(int i = ; i <= n; i++){
nodes[i].id = i;
nodes[i].nxtid = i + ;
}
nodes[n].nxtid = ; bool fst = false;
int now = , prev = ;
while(n--){
for(int i = ; i < m; i++){
prev = now;
now = nodes[now].nxtid;
}
if(fst)printf(" ");
else fst = true;
printf("%d", nodes[now].id);
nodes[prev].nxtid = nodes[now].nxtid;
} return ;
}
洛谷P1996 约瑟夫问题【链表】的更多相关文章
- (水题)洛谷 - P1996 - 约瑟夫问题 - 链表
https://www.luogu.org/problemnew/show/P1996 试了一下数组实现的双向链表,是挺难用的,估计是应该写个get_next()函数比直接用next数组好. #inc ...
- 【新知识】队列&bfs【洛谷p1996约瑟夫问题&洛谷p1451求细胞数量】
(是时候为五一培训准备真正的技术了qwq) part1 队列(FIFO) 算法简介: FIFO:First In First Out(先进先出) 队列是限定在一端进行插入,另一端进行删除的特殊线性表 ...
- 【vector的输出问题】 洛谷 P1996 约瑟夫问题
题目:P1996 约瑟夫问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 可恶啊,本来是一道不算难的题,硬是因为cin,cout同步流卡了我一天qwq 关闭cin,cout同步流 ...
- [洛谷]p1996约瑟夫环 &xdoj1311
https://www.luogu.org/problemnew/show/P1996 约瑟夫环这个问题一直以来都是用循环链表写的,今天才知道有循环队列的写法.以下是要点: 1.循环队列实现环的思想, ...
- 洛谷——P1996 约瑟夫问题
P1996 约瑟夫问题 (什么?!要给学弟学妹讲约瑟夫问题?!难道就不怕我给他们讲错了吗?! 啊啊啊,为了不给学弟学妹们讲错,蒟蒻表示要临阵磨一下刀...) 题目背景 约瑟夫是一个无聊的人!!! 题目 ...
- 洛谷 P1996 约瑟夫问题
题目背景 约瑟夫是一个无聊的人!!! 题目描述 n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出 ...
- 洛谷P1996 约瑟夫问题【队列】
题目背景 约瑟夫是一个无聊的人!!! 题目描述 n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,--依次类推,直到所有的人都出 ...
- 【洛谷P1996】约瑟夫问题
约瑟夫问题 链表模拟大概是正解 #include<iostream> using namespace std; struct node{ //单链表 int d; node *next; ...
- 洛谷 P1145 约瑟夫
题目描述 n个人站成一圈,从某个人开始数数,每次数到m的人就被杀掉,然后下一个人重新开始数,直到最后只剩一个人.现在有一圈人,k个好人站在一起,k个坏人站在一起.从第一个好人开始数数.你要确定一个最小 ...
随机推荐
- KNN和Kmeans聚类有什么不同?
这两种算法之间的根本区别是,Kmeans本质上是无监督学习而KNN是监督学习.Kmeans是聚类算法,KNN是分类(或回归)算法. Kmeans算法把一个数据集分割成簇,使得形成的簇是同构的,每个簇里 ...
- django中的一对一、一对多、多对多及ForeignKey()
参考文章: Django ORM.一对一.一对多.多对多.详解 刘江的博客——关系类型字段 问题: OneToOneField()与ForeignKey()的区别及其使用场景
- 大家都知道fastclick能解决300ms延迟,现在我们来看一下,使用方法
1.在终端输入以下命令进行安装 npm install fastclick -S 2.在你用脚手架搭建好的项目中,找到mian.js这个入口文件,打开 3.在其中加入: import FastClic ...
- 推荐安全且匿名的邮箱 ProtonMail -- PGP算法
==以前一直以为平时所用的邮箱是绝对安全的,没有深思它的安全性. 然而你要“犯罪”不留任何痕迹的话,呵呵. 国内应该没有类似 ProtonMail 的邮箱,-->去了解一下 ========== ...
- 【Java编程思想笔记】注解--元注解
参考文章:(小白的小小白的白 )https://blog.csdn.net/weixin_42315600/article/details/80630669 https://www.cnblogs.c ...
- java应用的优化【转】
XX银行网银系统是一套全新的对公业务渠道类系统,经过两年的建设,将逐步对外提供服务. 该系统融合了原来多个对公渠道系统,并发量是以前多个系统之和,吞吐量要求将大幅上升.为了使广大对公客户使用系统时获得 ...
- css :root 选择器
:root css 伪类匹配文档的根元素. 对于 HTML 来说, :root 表示<html>元素,除了优先级更高之外,与 html 选择器相同. 在声明全局 css 变量时 :root ...
- 【easy】206. Reverse Linked List 链表反转
链表反转,一发成功~ /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; ...
- [C]关于函数指针参数的赋值
问题 在有一次尝试用stat()函数获取文件属性的时候,发现如果直接声明一个指针,然后把这个指针作为参数传给函数,会导致函数执行失败,原代码: #include <sys/stat.h> ...
- Flask简述
Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后 ...