上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 28 下一页
摘要: 查找数组中第k个数,可以利用基于快速排序思想的快速选择算法。注意事项同快排完全相同一样int QuickFindK(int nums[],int l,int r,int k){ if(l==r&&l==k) return nums[k]; int left=l-1,right=r+1; int ke 阅读全文
posted @ 2021-12-08 20:17 80k 阅读(33) 评论(0) 推荐(0)
摘要: 二分查找的本质是寻找一个性质,使数组的左侧全不满足,右侧全满足(或左侧全满足,右侧全不满足)。查找的结果是最后一个或第一个满足的点(左侧区间最右或右侧区间最左)根据两种情况,有不同的check()、mid、l、r写法 查左侧区间最右 mid=(l+r+1)>>1; if(check(mid)) l= 阅读全文
posted @ 2021-12-08 20:15 80k 阅读(62) 评论(0) 推荐(0)
摘要: 简单的数位模拟题len位数共有 len*9*10^(len-1)个(10^(len-1)~10^n-1)可以对n进行试减,使范围内的数字全为len位。同时对于n对应的数字x有(x-10^(len-1)+1)*len>=n可以解得xx>=[n/len]-1+10^(len-1)利用n-=(x-10^( 阅读全文
posted @ 2021-12-08 20:14 80k 阅读(26) 评论(0) 推荐(0)
摘要: 不使用数学方法,有明显的两段性适用于二分查找。同时第i行有几个数小于mid可以直接计算,[mid/i」个 阅读全文
posted @ 2021-12-08 20:12 80k 阅读(18) 评论(0) 推荐(0)
摘要: 可以转化为二维背包问题。负无穷可以用memset和-0x3f初始化 阅读全文
posted @ 2021-12-08 20:12 80k 阅读(39) 评论(0) 推荐(0)
摘要: 关于信息熵,n个状态可携带log_2(n)的信息量n次实验,每次m个信息,共可判断(n+1)^m种情况 阅读全文
posted @ 2021-12-08 20:11 80k 阅读(24) 评论(0) 推荐(0)
摘要: 二维转一维 m*n数据范围 num->{num%n,num/n};用unordered_map记录特殊的映射,非特殊不记录,节省空间。 阅读全文
posted @ 2021-12-08 20:11 80k 阅读(44) 评论(0) 推荐(0)
摘要: 归并排序模板 int tmp[100010];void MergeSort(vector<int> &nums,int l,int r){ if(l>=r) return; int mid=(l+r)/2; MergeSort(nums,l,mid);//使用mid和mid+1防止死循环 Merge 阅读全文
posted @ 2021-12-08 20:07 80k 阅读(34) 评论(0) 推荐(0)
摘要: ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); 阅读全文
posted @ 2021-12-08 20:05 80k 阅读(79) 评论(0) 推荐(0)
摘要: 模板以及说明如下 void QuickSort(vector<int> &nums,int l,int r){ if(l>=r) return; int key=nums[r];//r或l int left=l-1,right=r+1; while(left<right) { while(nums[ 阅读全文
posted @ 2021-12-08 20:04 80k 阅读(28) 评论(0) 推荐(0)
上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 28 下一页