刷题笔记

排序

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;
} 
上一篇:规范化Normalization


下一篇:函数的千层用法(持续更新中)