Yjmstr的算法竞赛模板(updating)
发布人:shili8
发布时间:2024-11-07 22:10
阅读次数:0
**YJMSTR 的算法竞赛模板 (Updating)****前言**
作为一个算法竞赛爱好者,写出高效、可维护的代码是非常重要的。以下是 YJMSTR 的算法竞赛模板,包含了常见的数据结构和算法实现。
**模板结构**
markdown# 模板名称##问题描述## 数据范围## 输入输出格式## 提示和约束###代码实现#### [数据结构] #### [算法] #### [其他]
**常见的数据结构**
### 数组
cpp#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> arr(n);
for (int i =0; i < n; i++) {
cin >> arr[i];
}
// ...
}
### 链表
cpp#include <iostream>
#include <list>
using namespace std;
struct Node {
int data;
Node* next;
};
Node* createList(int n) {
Node* head = new Node();
Node* cur = head;
for (int i =0; i < n; i++) {
cur->data = i;
cur->next = new Node();
cur = cur->next;
}
return head;
}
void printList(Node* head) {
while (head != nullptr) {
cout << head->data << " ";
head = head->next;
}
}
### 栈和队列
cpp#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<int> s;
// ...
}
// 队列实现#include <queue>
int main() {
queue<int> q;
// ...
}
**常见的算法**
### 二分查找
cpp#include <iostream>
#include <vector>
using namespace std;
int binarySearch(vector<int>& arr, int target) {
int left =0;
int right = arr.size() -1;
while (left <= right) {
int mid = left + (right - left) /2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid +1;
} else {
right = mid -1;
}
}
return -1; // 未找到}
### DFS和BFS
cpp#include <iostream>
#include <vector>
using namespace std;
void dfs(vector<vector<int>>& grid, int x, int y) {
if (x < 0 || y < 0 || x >= grid.size() || y >= grid[0].size()) return;
// ...
}
void bfs(vector<vector<int>>& grid, int x, int y) {
queue<pair<int, int>> q;
q.push({x, y});
while (!q.empty()) {
int curX = q.front().first;
int curY = q.front().second;
// ...
q.pop();
}
}
**其他**
### 位运算
cpp#include <iostream>
using namespace std;
int main() {
int a =5; //101 int b =3; //011 int result = a & b; //001 cout << result << endl;
}
### 数学运算
cpp#include <iostream>
using namespace std;
int main() {
long long n;
cin >> n;
long long result = (n * (n +1)) /2;
cout << result << endl;
}
以上是 YJMSTR 的算法竞赛模板,包含了常见的数据结构和算法实现。希望对你有所帮助!

