wp_11_27
[toc] 遗老 数组构造 C_Meximum_Array_2.cpp 杂 欧拉筛和最大公约数 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121#include <iostream>#include <vector>#include <numeric> // 用于 std::gcd (C++17), 但手写gcd更通用using namespace std;// ================= 配置区域 =================const int MAXN = 100...
KH计算几何
这里是计算几何 使用建议 精度:定义dcmp来判断所有double 向量化 调试:cout << fixed << setprecision(10); 前置头 123456789const double EPS = 1e-9;const double PI = acos(-1.0);inline int dcmp(double x) { if (x < -EPS) return -1; if (x > EPS) return 1; return 0;}//这个函数可以做到:1,提取数字的符号 2,比较两个数的大小:调用的时候:dcmp(a-b)inline double sqr(double x) { return x * x; }//取平方 struct 点(包含重载运算符) 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950struc...
KH优化算法
莫队 普通莫队做法 P2709 【模板】莫队 / 小B的询问 核心模型: 思维误区 (Bug): 修正逻辑 (Patch): 关键代码: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182struct qury{ int l, r, id;};void solve(){ int n, m, k; cin >> n >> m >> k; vi nums(n + 1); for (int i = 1; i <= n; i++) { cin >> nums[i]; } vi cnt(k + 3); vector<qury> qry(m); ...
KH二进制
二进制常见trick 快速判断奇偶:n & 1 乘除2n >> 1 n << 1 x>>k是指x右移k格就是把最右边顶掉就是除以二 正数是向下取整负数是向下(比如-5>>1=-3) 关于2的次方:必须注意的两个“坑”坑一:优先级问题位运算的优先级低于加减法!错误:1 << k - 1 (会被解析为 1 << (k - 1))错误:a + 1 << k (会被解析为 (a + 1) << k)正确:总是加括号!(1 << k)坑二:不要用 pow(2, k)pow() 函数是浮点运算,返回值是 double。缺点:慢:比位运算慢得多。精度问题:当 kkk 很大时,转回 int 或 long long 可能会出现精度丢失(比如算出 31.99999 转成 31)。结论:整数运算永远只用 <<。 是不是2的整数次幂 作用:log2 n; n & (n - 1) lowbit:用于树状数组update 和 query 操作b...
KH单调栈单调队列
单调栈模板 运用场景 下一个/上一个更大/更小值的位置 去除重复子串 精妙之处 在栈里面存下标,只在更新的时候“取下标”。 AC代码 123456789101112131415161718192021222324int n; cin >> n; vector<int> a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } stack<int> stk; vector<int> ans(n); for (int i = 0; i < n; i++) { while (!stk.empty() && a[stk.top()] < a[i]) { ans[stk.top()] = i + 1; stk.pop(); } stk.push(i); &...
KH_stl字典
bitset 在状态空间搜索、图的连通性、二维偏序或 01 背包问题中,当状态数 NNN 在 1000~2000 级别,常规 O(N2)O(N^2)O(N2) 或 O(N3)O(N^3)O(N3) 做法会 TLE 时,使用 std::bitset 可以利用 CPU 的位运算指令将常数极大地优化(通常是将时间复杂度除以 64),实现“降维打击”。 声明与初始化 (买灯泡) 注意: 在竞技编程中,bitset 的大小必须是常量,不能用变量代替。 123456789#include <bitset>#define int long longusing namespace std;// 声明一个长度为 1000 的 bitset,默认所有位都是 0 (灭)bitset<1000> bs; // 声明并用整数初始化 (十进制转二进制,5 -> 101,即第 0 和第 2 位为 1)bitset<1000> bs2(5); 单点操作 (针对某一个具体开关) 1234567bs.set(5); // 第 5 位设为 1bs.r...
KH图论
拓扑排序 Kahn bfs求拓排 1234567891011121314151617181920212223242526272829303132333435int n, m; cin >> n >> m; vector<vi> mp(n + 1); vi idg2(n + 1); for (int i = 0; i < m; i++) { int u, v; cin >> u >> v; mp[u].push_back(v); idg2[v]++; } queue<int> q; for (int i = 1; i <= n; i++) if (idg2[i] == 0) q.push(i); while (!q.empty()) { if (q.size() > 1) { wuhuan = 0; ...
Diary日记
2026年4月1日 整了一整个通宵,起来还要vp,孩子们我能活着吗? 这是一条test test2喵 2026年3月31日 好久没写diary了,我决定严肃研究我推文功能🤔 unk宝宝在用龙虾写代码,那我的hexo算什么εε=( o`ω′)ノ btw我这也是ai写的)) 无所谓了)) btw我要认真打ctf吗)) 26年情人节 12345678910111213141516171819202122232425262728293031323334void solve(){ int n; cin >> n; map<int, int> love; for (int i = 0; i < n; i++) { int d; cin >> d; love[d]++; } for (auto hsh : love) { auto [ilove, ljl] = hsh; if (ljl ...








