排序
cint cmp(node a, node b)
{
// 最后 会按 a.a>b.a ...的顺序排好
return a.a > b.a || (a.a == b.a && a.b > b.b) || (a.a == b.a && a.b == b.b && a.data < b.data);
}
// 通过这个和 sort() 一起使用 可以 对结构体等进行排序
sort(p, p + n, cmp); // 不稳定
stable_sort(p, p + n, cmp); 稳定的排序
快速 求幂 的模
#include<bits/stdc++.h>
#define ll long long
// p 是要模的数
ll qpow(ll a,ll n,ll p)
{
if(n==0)
return 1;
ll c = qpow(a,n>>1,p);
// 判断是不是 奇数
// 原理 就是 如果 二进制下的数得最后一位决定 是奇数 还是 偶数
// 所有 通过 & 如果都为 1 则为 1
// ...1 & 1 = 1 奇数 ...(二进制数前面的数忽略)
// ...0 & = 0
if(n&1)
return c*c%p*a%p;
else
return c*c%p;
}