摘要:
2024-9-22 单调栈: https://atcoder.jp/contests/abc372/submissions/58042503 单调栈(队伍中肉眼看到的人数) 人数判断: 题目1: https://www.luogu.com.cn/problem/P2866 提交代码: https:/ 阅读全文
摘要:
总结(我的塘人局): 单调栈是忘得差不多了 A - delete . 题意: 输出删除所有'.'的字符串 思路: 遍历输出不是'.' 复杂度: O(n) Code: #include <bits/stdc++.h> using namespace std; using LL = long long; 阅读全文
摘要:
这场比较guess吧 A.困难数学题 题意:(数学) 计算x ^ x ^ x ^ x的值 思路: 根据异或的结论 x ^ x = 0 可代入式子得到最终结果为0 复杂度: O(1) Code: n = int(input()) print(0) 知识点(拓展): 常用结论: 自反性: 对于任意a满足 阅读全文
摘要:
树上问题涉及许多经典的算法技巧, 这里我们一个个枚举 "倍增 距离 重心 直径 差分" 倍增 代表算法: LCA (最近公共祖先) LCA 介绍: 给你一颗树S, 对于任意给定两个节点from, to, 找到一个离根最远的节点x, 使得x是from, to的祖先, 同理寻找到的 x 也是from, 阅读全文
摘要:
前置知识 向量 和 三角函数 点积 Code: struct Point { double x, y; } ; double dot (Point a, Point b) { return a.x * b.x + a.y * b.y; } double len (Point a) { return 阅读全文
摘要:
绝对众数 题意: 在严格保证序列中有绝对众数的前提下输出这个绝对众数 定义绝对众数为序列中出现次数严格大于一半的数字 Code: void solve() { int n; cin >> n; map <int, int> mp; for (int i = 1, x; i <= n; i++) { 阅读全文
摘要:
A.盒子 //https://github.com/Ckeyliuhi/acm-iters #include <bits/stdc++.h> using namespace std; using i64 = int64_t; bool check (int x, int a, int b) { re 阅读全文
摘要:
A.小红的好数 题意: 满足数位为2, 且个位数和十位数相等 思路: 通过输入字符串, 首先判断字符串的个数是否为2, 在判断个位数和十位数是否相等 复杂度: O(1) Code: #include <bits/stdc++.h> using namespace std; using i64 = i 阅读全文
摘要:
最长公共子序列 LCS是指这两个序列中最长的公共子序列, 子序列:不要求字符在原序列中连续, 但相对顺序必须保持一致 问题: 给定两个字符串X和Y, 我们需要找到它们最长公共子序列 X = "ABCBDAB" Y = "BDCAB" 输出最长公共子序列的长度为4 及"BDAB" 动态规划的思路 dp 阅读全文
摘要:
最长上升子序列(LIS): 定义: 最长上升子序列(LIS)是一个序列中,找到一个子序列,使得这个子序列的元素是严格递增的,且该子序列的长度最大 *子串和子序列的差别: 子串: 元素的连续性,必须是相邻的 子序列:元素的相对顺序,可以不连续 动态规划 O(n ^ 2) 定义 dp[i] 表示以 a[ 阅读全文