摘要: 能不用最好永远不用+=,因为它取模时会特别慢——zhx 如果涉及到位运算,那么尽量打括号,位运算的优先级很奇怪——zhx 排列是一个1~n每个数都出现且只出现了一次的序列 DP的基本三要素 1.状态 2.转移方程:状态之间的关系 3.初始化:边界状态如何计算 将题目中所有在变化的量定为状态 你会发现 阅读全文
posted @ 2025-05-03 18:38 zhuyucheng 阅读(14) 评论(0) 推荐(0)
摘要: 不要用endl。 手写大根堆模板 点击查看代码 struct heap { int a[1010];//堆的每一个元素 int n=0;//堆有几个元素 int top()//询问最大值 { return a[1]; } void push(int x)//插入一个数 {//O(logn) n++; 阅读全文
posted @ 2025-05-02 18:20 zhuyucheng 阅读(12) 评论(0) 推荐(0)
摘要: 树状数组没用。 可持久化 能够访问历史版本,且强制在线。 常见:数组、并查集、平衡树、线段树。 核心:不能修改原来的值。 区间推平一定要先推平,把懒标记删掉。 不要写#define int long long,慢4倍。 线段树模板 点击查看代码 #include<bits/stdc++.h> usi 阅读全文
posted @ 2025-05-02 17:41 zhuyucheng 阅读(15) 评论(0) 推荐(0)
摘要: 生成树并查集的路径压缩 点击查看代码 //O(mlogm) sort最慢 #include<bits/stdc++.h> using namespace std; int to[MAXN];//to[i] 表示 i 点在并查集里面的箭头指向谁 int go(int p){//看一下点 p 沿着并查集 阅读全文
posted @ 2023-10-02 08:44 zhuyucheng 阅读(63) 评论(1) 推荐(0)
摘要: 倍增 点击查看代码 //最大值不支持减法操作 //倍增代码,求区间的最大值 #include <bits/stdc++.h> using namespace std; long long n,a[1000000],f[100000][20],m;//f的j次方开到20就可以达到1000000 lon 阅读全文
posted @ 2023-10-02 08:43 zhuyucheng 阅读(59) 评论(1) 推荐(0)
摘要: sort函数:把数组从小到大排序 max函数:求出两个数的最大值 min函数:求出两个数的最小值 unique函数:使用前提是先排好序,再使用,效果是去重 merge_sort归并排序 reverse函数:翻转数组 random_shuffle函数:把a[1]到a[n]随机打乱 swap函数:交换两 阅读全文
posted @ 2023-10-01 17:02 zhuyucheng 阅读(65) 评论(1) 推荐(0)