![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 85
水牛的梦想
沙雕一枚,时而有点高冷
展开
-
进阶指南--超快速排序(归并+逆序对)
归并排序: 将数组切成两半,然后左边排完 右边排完 (二分递归) 合并排列(用临时数组:对左右两边的数谁大谁进去)逆序对对于i,j (i < j ) 如果 a[i] < a[j] 则构成一个逆序对那思考:归并排序 你知道左边一个单调递增数列,右边一个单调递增数列,mid是左右分界,属于左边,那对于右边的数 a[j] 而言,在合并的时候,如果发现自己小于前面的一个数 a[i] 进了数组, 那说明 a[i]~a[mid] 都比a[j] 大,构成了(mid-i+1) 个逆序对这原创 2020-10-17 21:18:16 · 265 阅读 · 0 评论 -
最简快排模板+第k大数
快排这个快排模板,还是记住吧。。。边界太复杂了,搞不懂搞不懂它的思路和普通快排不是很一样:普通快排的思想从任选一个数,正常选中间,然后在数组中找到这个数的位置,选定,继续把这个数的左边和右边继续递归搞完这个快排就其实思路也差不多,它把小于等于X的搞在左边,大于等于X的搞在右边,然后继续递归,就排完了,,,代码简单嘿嘿#include <bits/stdc++.h>using namespace std;const int MA = 1e6+10;int a[MA];void q原创 2020-10-10 23:02:38 · 109 阅读 · 0 评论 -
c++读文件,造数据
读文件 freopen("3.in","r",stdin); //读入,在你的代码的文件夹里需要有这个东西 3.in freopen("3.out","w",stdout);//输出,输出怎样的格式看你自己,也可3.txt,如果你的文件夹有这个3.out直接读到里面,如果没有它给你创一个 造数据#include <bits/stdc++.h>using namespace std; char str[100];int main(){ std::ios::sync_with_原创 2020-10-10 11:08:49 · 599 阅读 · 0 评论 -
知识积累
hang = (n-1)/lie + 1;//等价于 n/lie +(n%lie) ? 1:0;原创 2019-10-28 08:46:30 · 127 阅读 · 0 评论