首页 > 代码库 > 2017.01.21

2017.01.21

  和昨天一道题都没做出来不一样.....今天写了五道题;

  还是昨天没写完的二分查找验证,P1139和NOIP2015Day2T1题。犯的错误不少,比如check函数内计数的问题,跳石头和路由器安放的初始值不一样;主要是思路刚开始没想对,没有用二分,而且并不知道为什么要用二分。其实就是二分枚举直径/跳石头的距离。并且跳石头和路由器安放虽然策略一样,但是中间的check有不同,因为路由器是安装,跳石头是拆,所以实际上跳石头是 总数-拆的数 来进行验证;

 

  然后是高级模运算,求(a1^b1+a2^b2.....)%k的值。实际上就是快速幂【fastpower】,然后写的时候没控制好还是溢出了

long long fastpower(int x,int y)
{
    long long t=1;
    while(y!=0)
    {
        if(y&1==1) t=t*x%k;
        x=(x%k)*(x%k)%k;
        y=y>>1;
    }
    return t;
}

  本来我写的是x*x%k,觉得不会溢出的....

  【get新技能快速幂】

 

  然后水题两道我就不说了,虽然被第一道水题卡住了...然后看了看lsj的代码顿悟,实际上真是一道水题...

2017.01.21