基础数论

\[X!-1=1\times 1!+2\times2!+3\times 3!+....+(x-1)\times (x-1)! \]

互质

互质数为数学中的一种概念,即两个或多个整数的公因数只有1的非零自然数。公因数只有1的两个非零自然数,叫做互质数。

%模运算
(a + b) % p = a % p + b % p;
(a - b) % p = a % p - b % p;//a>=b
(a * b) % p = (a % p) * (b % p);
(a / b) % p = a * get_inv(b, p);//逆元
(a ^ b) % p = ((a % p) ^ b) % p;
((a + b) % p * c) % p = ((a * c) % p + (b * c) % p) % p;
a% p = (a + p) % p;
a的b次方%p=(a+p)b次方%p;
高精度取模运算
m是一个10^10000的数,n是一个int范围的数
1234%7=((((1)%7*10+2)%7*10+3)%7*10+4)%7
int ans = 0;
for (int i = 0; i < len; i++)//s[i]存高精度数的每一位
{
	ans = (ans * 10 + s[i]) % n;
}
ans为m%n
异或运算
^异或运算:
异或满足 交换律,结合律(和乘法极为相似)
a^ a = 0;
a ^ 0 = a;
a^ b = b ^ a;
a^ b^ c = a ^ (b ^ c);//任意改变运算顺序
a^ b^ a = b;

a^ b <= a + b; 

[P5514 MtOI2019]永夜的报应 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

Dilworth定理:

通俗解释:把一个数列划分成最少的最长不升子序列的数目就等于这个数列的最长上升子序列的长度(LIS)

[P1020 NOIP1999 普及组] 导弹拦截 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

求x位数的方法:

log10(x)+1;(取整)

通过取对数的方法可以把指数提出来:log(x^x)=xlog(x)

P2759 奇怪的函数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

分解质因数问题:

(ak)%(m1m2)=0,求k值

将a分解成a=b1c1*b2c2*b3^c3

m1分解成m1=e1f1*e2f2*e3^f3

如果m1分解成的因子e1,e2...a的因子中都包含,则存在k,k=对应因子的指数的倍数的最大值

NOIP2009 普及组] 细胞分裂 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

斐波那契和广义斐波那契:

P1349 广义斐波那契数列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

q

w

寻找中位数:

CQOI2009]中位数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

中位数

在数轴上,有n个数,a1,a2,a3.......an

存在一个数x,使得所以n个数到x的距离和最小。

x为n个数的中位数时,一定成立。

(x为其他数时,也有可能成立)

  • n为奇数时,只有中位数满足。
  • n为偶数时,n / 2 <= x <= n / 2 + 1 ; 都满足

给出一个矩形的三个顶点坐标,求另一个顶点坐标。

原理:平行四边形的对角线相互平分,点1和点2在一条对角线上,点3点4在一条对角线上。

\(\frac{x1+x2}{2}= \frac{x3+x4}{2},\frac{y1+y2}{2}=\frac{y3+y4}{2}\)

\(x4=x1+x2-x3,y4=y1+y2-y3\)
需要求出那两个点在一条对角线上。

void f(int x1, int y1, int x2, int y2, int x3, int y3)
{
	int d1 = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
	int d2 = (x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3);
	int d3 = (x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2);
	int x4, y4;
	if (d1 + d2 == d3)
		x4 = x3 + x2 - x1, y4 = y3 + y2 - y1;
	else if (d1 + d3 == d2)
		x4 = x1 + x3 - x2, y4 = y1 + y3 - y2;
	else
		x4 = x1 + x2 - x3, y4 = y1 + y2 - y3;
}

a+b=2*a&b+a^b

Problem Detail | 2022寒假蓝桥杯基础集训-contest003 (njupt.edu.cn)

小张开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。

小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。

求最大不能组合出的数字是17.

n和m最大不能组合出来的数字是nm-n-m

小L的疑惑

Problem Detail | SAST2021算法线上冬令营-热身赛 (njupt.edu.cn)

将所有数排序,根据排序结果自1到n累加,当第i位数值-1大于前i-1项的累加和时,即可认为其不是连续的,那么答案即为前i-1项的累加和+1.

posted on 2021-11-11 12:56  naiji  阅读(169)  评论(0)    收藏  举报