日常总结
9.24 距初赛还有29天
暑假就已经看过分治和贪心,二周目的感觉已经完全不一样了。
归并排序是个什么鬼呢?
首先是把边界不断的往小的缩(递归)
也就是这句代码
1 mid=(l+r)/2; 2 worksort(l,mid-1); 3 worksort(mid,r);
这三句就是不断的递归套用,来把一个大范围的一个数组归并成很多小的数列(也就是先确定一个小目标了);
最后是不是就把它们两个两个的分好组了?
然后四个元素之间排序是不是很简单?定义一个指针,如果左边大就把右边放到缓冲区,反之把左边放到缓冲区;
最后序列里剩下的元素直接放到结尾就行
主要作用:
1、求解逆序对;
2、求解逆序对;
3、求解逆序对;
4、额我也不知道;
*****************以下是快速幂*********************
快速幂这东西举个栗子就很容易明白了
10的二进制=1010;那么a^10=a^8*1*a^2*1
a^2很好求而a^8=a^2*a*2*a^2
也就是分而治之了那么原来的十次乘法就被简化为4次乘法
代码如下
int work(int b,int p) { long long sum=1; int temp=p,s=b; while(temp!=0) { if(temp%2==1) sum=1ll*sum*s%k; temp/=2; s=1ll*s*s%k; } return sum; }
posted on 2016-09-24 13:28 supersumax 阅读(126) 评论(0) 编辑 收藏 举报