queer
1.如果将一个数的二进制数重复两次当作一个数的二进制数,那么后一个数是前一个数的倍数。即将前一个数添上几个零,然后加上前一个数。
for(i=1;i<=32;i++)if(1LL<<i>x)break; cout<<x*(1LL<<i)+x<<endl;
2.斐蜀定理:
若a,b是整数,且gcd(a,b)=d(最大公约数),那么对于任意的整数x,y,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使ax+by=d成立。
重要推论:
a,b互质的充分必要条件是存在整数x,y使ax+by=1.
3.如果 a,b 均是正整数且互质,那么由 ax+by,x≥0,y≥0 不能凑出的最大数是 (a−1)(b−1)−1。
4.a/b向上取整,可以用ceil函数(ceil函数返回的是double类型),也可以用(a+b-1)/b;
5.a%b,如果a>0则返回正数,a<0则返回负数,如果向让其返回的都是正数,则可以写为(a%b+b)%b。
6.pow是double转int,用pow计算n的幂要在前面加上(int);
7.完全二叉树是指除最后一层节点外,每个节点都有两个子节点。
8.算数基本定理:任何一个数都可以转化为有限个质数的指数的乘积的形式。
9.一个数的约数的个数可以用算术基本定理中每个质因子的指数 + 1的乘积计得到,因为每个质因子都有指数加1种选法(可以不选)。一个数的约数之和为每个质因数的1次方加到每个质因数的个数次方再相乘。
图片来源(acwing--yxc)
10.
平面上一点x1,y1,绕平面上另一点x2,y2顺时针旋转θ角度 ,怎么求旋转后的x1,y1对应的坐标x,y
x=(x1-x2)cosθ-(y1-y2)sinθ+x2
y=(y1-y2)cosθ+(x1-x2)sinθ+y2