摘要:
引子 对hdu6703,首先将问题转化为“询问一个排列中大于等于k的值里,下标超过r的最小权值是多少” 我们采用官方题解中的做法:权值线段树+剪枝 对(a[i],i)建线段树,查询权值线段树的[k,n]中第一个下标超过r的值 代码是这样的 int ask(int l, int r, int root 阅读全文
摘要:
#例一 求一组数的lis f[i]为必选a[i]的lis长度 class Solution { public: //low[i]代表长度为i的lis的结尾的最小值 int LIS(vector<int>& a) { int n = a.size(); int cnt = 0; vector<int> 阅读全文
摘要:
复杂度O(N)的非负整数排序 class Solution { public: void radixSort(vector<int>& nums) { int n = nums.size(); int exp = 1; vector<int> buf(n); int mx = *max_elemen 阅读全文