美文网首页
一些知识的总结(1)

一些知识的总结(1)

作者: zeppoe | 来源:发表于2017-10-18 22:06 被阅读0次
    • 异或变换

    • 定义结构体

    • 字符串哈希

    • 快速幂

    • 队列

    • 异或变换

      即判断两个数是否相同,相同为0,不同为1,主要是在二进制位下比较每一位得到结果,C++运算符 " ^ "
    • 定义结构体

    struct 结构体名称{
        变量类型 变量1,变量2,...;
    }以该结构体为类型的变量名称;
    
    • 字符串哈希

    #define hnum 100007
    //大质数
    string h[5000];
    
    int hash(string ss){
        int x=0,k=1;
        int len=ss.size();
        for(int i=0;i<len;i++){
            x+=k*(ss[i]-'a');
            if(x>=hnum) x%=hnum;
            k*=26;
            if(k>=hnum) k%=hnum;
        } 
        while(h[x]){
            x++;
            if(x>=hnum) x-=hnum;
        }
        return x;
    }
    
    • 快速幂

    //a*b%p
    int quickmi(int a,int b){
        int ans=1;
        while(b>0){
            if(b%2==1) ans=(ans*a)%p;
            b=b>>1;// /2
            a=(a*a)%p;
        }
        return ans;
    }
    
    • 队列

      • C++队列queue模板类的定义在<queue>头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。C++队列Queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。

      • queue 入队 ,如例:q.push(x); 将x 接到队列的末端。
        queue 出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
        访问queue队首元素,如例:q.front(),即最早被压入队列的元素。
        访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。
        判断queue队列空,如例:q.empty(),当队列空时,返回true。
        访问队列中的元素个数,如例:q.size()

      • #include<queue>
      • queue <变量类型> 变量名;

    相关文章

      网友评论

          本文标题:一些知识的总结(1)

          本文链接:https://www.haomeiwen.com/subject/hrzeuxtx.html