ACM坑中人. 蒟蒻爬虫

supersumax

noip的坑中人

日常总结

  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编辑  收藏  举报

导航