异或变换
定义结构体
字符串哈希
快速幂
队列
-
异或变换
即判断两个数是否相同,相同为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 <变量类型> 变量名;
-
网友评论