31 行代码C++课堂示例
高精度加法
两个高精度数相加的普通实现
#include<bits/stdc++.h>
using namespace std;
int main(){
string a,b;
cin>>a>>b;
//翻转对齐#高精度
两个高精度数相加的普通实现
#include<bits/stdc++.h>
using namespace std;
int main(){
string a,b;
cin>>a>>b;
//翻转对齐两个高精度数相减的普通实现(包括小减大)
#include<bits/stdc++.h>
using namespace std;
int main(){
string a, b;
cin >> a >> b;构造二维前缀和数组,在 O(1) 时间复杂度内查询区间和。
const int N= 1e3+5;
using ll = long long;
ll a[N][N] = {0};
ll pref[N][N] = {0};
单向链表的标准实现以及链表操作
#include<bits/stdc++.h>
using namespace std;
struct Node{
int data;
Node *next;
};构造一维前缀和数组,在 O(1) 时间复杂度内查询区间和。
const int N = 1e5+5;
using ll = long long;
ll a[N] = {0};
for (int i = 1; i <= n; i++) {二分答案竞赛模板,提供左边界(求最小可行解)与右边界(求最大可行解)两种写法
// 假设 check(mid) 在答案范围内具有单调性:
int l = 1, r = maxLen;
// 右边界型二分
while (l < r) {
int mid = (l + r + 1) / 2; // +1 防止死循环(当 l+1==r 时 mid==r)