前言
今日开始记录学习罗勇军老师的《算法竞赛》这本书的过程,学校事较多,更新不太稳定,但能看到进度,并记录坑点。同时因为代码上注释什么的都是书上的,就不会对代码进行注释,代码全部是自己手动复现后写入文章中。
正文
1. 普通的链表
普通的链表在我曾经的文章中,曾详细讲解过,就不再进行练习,贴一个代码⬇️ 洛谷P1996
上代码
#include <iostream>
using namespace std;
// #define ONLINE_JUDGE
int m, n;
struct Node{
int data;
Node *next;
};
inline void solve() {
cin >> m >> n;
Node *head, *p, *now, *prev;
head = new Node;
head -> data = 1;
head -> next = NULL;
now = head;
for (int i = 2; i <= m; ++i) {
p = new Node;
p -> data = i;
p -> next = NULL;
now -> next = p;
now = p;
}
now -> next = head;
now = head;
prev = head;
while (m-- > 1) {
for (int i = 1; i < n; ++i) {
prev = now;
now = now -> next;
}
cout << now -> data << ' ';
prev -> next = now -> next;
delete now;
now = prev -> next;
}
cout << now -> data << ' ';
delete now;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
#ifndef ONLINE_JUDGE