摘要: 前置芝士 二维差分数组 \(1≤q≤100000,1≤n,m≤10^3,1≤x1≤x2≤n,1≤y1≤y2≤m,1≤a_{i,j},c≤10^5\) void solve(){ int n,m,q; cin>>n>>m>>q; vector<vector<ll>> a(n+1,vector<ll>( 阅读全文
posted @ 2023-10-17 23:53 White_Sheep 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 所有子数组中不平衡数字之和 [problem description] 一个长度为 n 下标从 0 开始的整数数组 arr 的 不平衡数字 定义为,在 sarr = sorted(arr) 数组中,满足以下条件的下标数目: 0 <= i < n - 1 ,和 sarr[i+1] - sarr[i] 阅读全文
posted @ 2023-10-17 20:49 White_Sheep 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 前置芝士 查找最后一个<=q的数的下标 // l,r均初始化为开区间 int a[100010],n; int find(int q){ int l=0,r=n+1;//左右指针为开区间 while(l+1<r){ int mid=l+r>>1; if(a[mid]<=q) l=mid; else 阅读全文
posted @ 2023-10-17 20:26 White_Sheep 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 前置芝士 最长上升子序列 (LIS) 平衡子序列的最大和 [problem description] 给你一个下标从 0 开始的整数数组 nums 。 nums 一个长度为 k 的 子序列 指的是选出 k 个 下标 \(i_0、i_1、 ... 、i_{k-1}\) ,如果这个子序列满足以下条件,我 阅读全文
posted @ 2023-10-17 20:14 White_Sheep 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 前置芝士 集合 其中 &表示按位与,∣ 表示按位或,⊕表示按位异或,∼ 表示按位取反。 [集合与集合] [集合与元素] 通常会用到移位运算。其中 <<表示左移,>>表示右移。左移 i 位相当于乘 \(2^i\),右移 i 位相当于除 \(2^i\)。 [证明] 删除最小元素 s = 101100 s 阅读全文
posted @ 2023-10-17 13:56 White_Sheep 阅读(12) 评论(0) 推荐(0) 编辑