0%

线性同余方程


辗转相除法

求gcd的基本方法是辗转相除法,即欧几里得算法

用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。

阅读全文 »

我一直在做的一个智障操作


如:n个点,求两两距离之和

我:

1
2
3
4
5
6
7
8

int ans=0;
for(int i=0;i<n;++i){
for(int j=0;j<n;++j){
ans+=abs(num[i]-num[j]);
}
}
num/=2;//每条边都算了两次

但是:每个点要干什么,不就是和前面所有点作一次差,和后面所有点作一次差

阅读全文 »

快速幂


乘方操作十分耗时,需要一种乘方的快速求法,
一个数的7次方,显然我们可以拆分为二次方乘五次方,而二进制中,可以更加方便的拆分之…

阅读全文 »

广度优先搜索


利用queue的BFS
基本组成: node结构, clear(), queue<node>, 存图(一维,二维,三维), 与地图一致的vis访问控制, BFS(), main(), 路径记录

阅读全文 »