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 的算法竞赛模板,包含了常见的数据结构和算法实现。希望对你有所帮助!