02 2025 档案
摘要:学习资料 1.E01 记忆化搜索 数字三角形 2.E02 线性DP 数字三角形 P1216 [IOI 1994] 数字三角形 Number Triangles 记忆化搜索写法 #include <cstring> #include <iostream> using namespace std; co
阅读全文
摘要:今天打开codeforces界面突然变成了这样 左侧变成了这样 恢复方法: 把滚轮拉倒最下面 切换成电脑模式即可恢复正常
阅读全文
摘要:学习资料 A05 二分查找算法 最好的板子 A06 二分答案 最好的套路 算法讲解006【入门】二分搜索 算法讲解051【必备】二分答案法与相关题目 二分查找 红蓝染色法【基础算法精讲 04】 二分查找的三种写法 注:其中第二种左闭右开的写法本质上是本文下面提到的特殊的左闭右闭写法,这个特殊的左闭右
阅读全文
摘要:P1396 营救 最小化最大值问题,无向图,可以用二分+BFS做,或者用最短路稍稍变形一下做 法一:堆优化dijkstra 统计每个点入边与出边的最大值,然后在这些最大值中找最小值存到dist数组中,最后dist[t]就是答案 // Problem: P1396 营救 // Contest: Luo
阅读全文
摘要:最值写法 记得要加#include <climits> 变量类型 最小值 最大值 int INT_MIN INT_MAX unsigned int 0 UINT_MAX long long LLONG_MIN LLONG_MAX unsigned long long 0 ULLONG_MAX 最值大
阅读全文
摘要:前序遍历 前序与后序代码几乎完全相同,唯一区别是入栈的顺序,前序入栈右左根,出栈为根左右, 后序入栈左右根,出栈为根右左,然后再反转一下就是后序遍历的左右根 class Solution { public: vector<int> res; vector<int> preorderTraversal
阅读全文
摘要:Codeforeces Codeforces游玩攻略 Atcoder AtCoder从小白到大神的进阶攻略
阅读全文
摘要:在 C++ 中,std::max_element 是一个标准库算法,定义在 <algorithm> 头文件中,用于在指定范围内查找最大元素的迭代器。 时间复杂度:,其中是范围 中的元素个数。因为需要遍历整个范围来找到最大元素。 取数组中元
阅读全文
摘要:老忘咋写,贴这记录下 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nu
阅读全文
摘要:十进制数m有01234567共8位 取123位置的二进制数方法 (m >> 4) & 0x07 取4567位置的二进制数方法 m & 0x0f 例题 响应报文时间 样例1 输入 3 0 20 1 10 8 20 输出 11 样例2 输入 2 0 255 200 60 输出 260 样例3 输入 1
阅读全文
摘要:学习资料 1.【C++】详解vector二维数组的全部操作 一维 vector<int> res(n, 0);//大小为n的数组,初始值全部设为0 Leetcode中常用,在类内定义外部变量,在函数内初始化 class Solution { public: vector<vector<string>
阅读全文
摘要:矩阵为型,为行,为列,为对角线数量 //撇对角线 for (int i = 0; i < n + m - 1; i++) { for (int j = max(0, i - m + 1); j <= min(i, n - 1); j++) { co
阅读全文
摘要:sort降序排序 写法一 int q[N]; sort(q, q + n, greater<int>()); //q为数组名,n为数组长度 vector<int> q; sort(q.begin(), q.end(), greater<int>()); 写法二 int q[N]; sort(q, q
阅读全文
摘要:做一道拆点的图论题时,需要用到堆优化的dijkstra,其中的堆存的是一个struct(参数大于2,pair放不下) 因为堆会自动排序,所以struct需要重载运算符。 注意:这两个模板是为了达到小根堆的效果 模板写法: 写法1:大根堆+重载小于号,但是返回的时候要反一下(返回与重载运算符相异) s
阅读全文
摘要:区间合并 学习资料: 1.A21 排序 区间合并 无哨兵模板,pair存区间(推荐) void merge(vector<PII>& segs) { sort(segs.begin(), segs.end()); vector<PII> res; int st = segs[0].first, ed
阅读全文
摘要:获取set首个元素值的方法 作用:因为STLset有自动排序的功能,所以有时需要获取set的首元素作为字典序最小来进一步处理。 方法:在h.begin()前面加星号*即可获取set首个元素的值 set<char> h; cout << *h.begin(); 例题:字符串化繁为简 示例1 输入 ()
阅读全文
摘要:学习资料 1.B02 图的存储 2.图是如何存储的:BFS、DFS 3.算法讲解059【必备】建图、链式前向星 各种存图方式的区别 图片来自上述学习资料 这里主要推荐表格中的后两种存图方法,因为适用于各种图。 只有在需要对一个点的所有出边进行排序的场合下,使用vector存边排序更方便,其余情况ve
阅读全文
摘要:关键函数 insert(pos,length, ch) string num = to_string(i); num.insert(0, 4 - num.size(), '0'); 例题:猜数字 样例1 输入 6 4815 1A1B 5716 0A1B 7842 0A1B 4901 0A0B 858
阅读全文
摘要:学习资料 1.推断二叉树 2.AcWing 3598. 二叉树遍历(暑假每日一题2022) 1.函数对比 前序中序推后序 void dfs(string mid, string pre) { if (mid.size()) { char root = pre[0]; int cur = mid.fi
阅读全文
摘要:stod函数 将string转为double string t = s.substr(i, j - i); double num = stod(t); 例题:货币单位换算 样例1 输入 2 20CNY53fen 53HKD87cents 输出 6432 说明: 20元53分+53港元87港分,换算成
阅读全文
摘要:单个char转string char x = 'a'; string c = string(1, x); string转单个char string s = "abc"; char x = s[0]; string转char[](字符数组) string s = "abc"; s.c_str(); (
阅读全文
摘要:头文件: #include <cstring> #include <sstream> 题目未给定数据个数,一般多在模拟题用到 string str; getchar(); //如果getline()之前已经读入过其他数据,需要用getchar()读掉前面剩下的回车 getline(cin, str)
阅读全文
摘要:读取时间 HH:MM:SS:NN型 函数 //转为毫秒表示,方便比大小 int get(string time) { int h, m, s, ms; //从字符串内读数据 sscanf(time.c_str(), "%d:%d:%d.%d", &h, &m, &s, &ms); return h
阅读全文
摘要:已知正方形相邻两点(a,b) or (x1, y1)与(c,d) or (x2, y2)坐标 公式: \( (x_3,y_3) = (c + (b-d), d - (a-c)) \\ (x_4,y_4) = (a + (b-d), b - (a-c)) \\ (x_5,y_5) = (a - (b-
阅读全文