摘要: 当时写的时候犯了糖...... 错误解法 我第一眼看这题的时候想到了线段树 我们可以写一个哈希函数将一个二维数组映射为一维 将每一次修改分段处理(类似于树链剖分) 输出时单点查询即可 这样修改的复杂度最大为 \(O(hlog(hw))\) 查询总复杂度为 \(O(hwlog(hw))\) 按理说没有 阅读全文
posted @ 2026-06-28 08:01 LZYXT 阅读(22) 评论(1) 推荐(0)
摘要: 这是一道很简单的DP水题 好久没做过这么简单的 TD 了 设 \(f_{i,0/1}\) 表示前 \(i\) 天,第 \(i\) 天天气为 \(R(1)\) 或 \(S(0)\) 时的最大快乐值 那么我们可以飞快的推出动态转移方程: \[f_{i,0}=max(f_{i-1,0},f_{i-1}[1 阅读全文
posted @ 2026-06-27 22:17 LZYXT 阅读(6) 评论(0) 推荐(0)
摘要: 我们维护一个桶 \(T\) 记 \(cnt\) 为 \(T\) 中不为1的元素的个数 \[cnt=\sum{[T_i \neq 0]} \]那么 \(cnt\) 即为答案 我们将每一只鸟按 \(D_i\) 升序排序 然后进行双指针扫描 具体怎么扫呢? 设 \(i\) 表示当前的天数,\(j\) 表示 阅读全文
posted @ 2026-06-27 22:06 LZYXT 阅读(3) 评论(1) 推荐(0)
摘要: #include<bits/stdc++.h> using namespace std; #define int long long default_random_engine n(time(NULL)); int num_i(int l,int r){ uniform_int_distributi 阅读全文
posted @ 2026-06-27 19:12 LZYXT 阅读(2) 评论(0) 推荐(0)
摘要: struct ST_Table{ int Log[NUM],f[NUM][20]; void init(int *a,int n){ Log[1]=0; for(int i=2;i<=n;++i) Log[i]=Log[i>>1]+1; for(int i=1;i<=n;++i) f[i][0]=a 阅读全文
posted @ 2026-06-27 19:10 LZYXT 阅读(4) 评论(0) 推荐(0)
摘要: 矩阵本体 struct Mat{ int mat[NUM][NUM]={}; int h,w; Mat operator + (const Mat oth){ Mat ans;ans.resize(h,w); for(int i=1;i<=h;++i) for(int j=1;j<=w;++j) a 阅读全文
posted @ 2026-06-27 19:09 LZYXT 阅读(3) 评论(0) 推荐(0)
摘要: 前置芝士 前、中、后序遍历。 关于存树 建议使用结构体。 struct tree{ int l,r; }T[NUM]; 也可以用数组。 int l[NUM],r[NUM]; 关于前序遍历 因为前序遍历先输出根节点,所以比较大小直接换就行了。 void q(int p){ if(T[p].l>T[p] 阅读全文
posted @ 2026-06-27 18:43 LZYXT 阅读(6) 评论(1) 推荐(0)