08 2022 档案
摘要:注意 >> 的运算顺序在加减之后 // 找到所有要查询的和插入的位置,把这些位置去重排序,然后把他们映射为一个新的数组,这个数组的值就是哪些位置上有的值然后再用前缀和问题 #include<bits/stdc++.h> using namespace std; const int N = 30001
阅读全文
摘要:记录每个数字出现次数,如果又多次出现就从当前位置重新开始计算长度 #include <iostream> using namespace std; const int N = 100010; int n; int q[N],s[N]; int main() { scanf("%d",&n); for
阅读全文
摘要:由于定义 b[i][j] = a[i][j] + a[i - 1][j - 1] - a[i - 1][j] - a[i][j - 1], b数组的值这样求, 那么 a[i][j] = a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1] + b[i][j]; 每次
阅读全文
摘要:求左上矩阵的和 #include<bits/stdc++.h> using namespace std; int main() { #ifdef ONLINE_JUDGE #else freopen("D:\\Hello world\\编程输入2\\in.txt", "r", stdin); #en
阅读全文
摘要:直接求复杂度太高 //常规时间复杂度为 n*m // #include<bits/stdc++.h> // using namespace std; // int main() { // int n, m; // cin >> n >> m; // vector<int> nums; // for
阅读全文
摘要:二分法的模板 bool check(int x) {/* ... */} // 检查x是否满足某种性质 // 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用: int bsearch_1(int l, int r) { while (l < r) { int mid = l
阅读全文