[luoguP2962] [USACO09NOV]灯Lights(高斯消元 + dfs)传送门
先进行高斯消元
因为要求最少的开关次数,那么:
对于关键元,我们可以通过带入消元求出,
对于自由元,我们暴力枚举,进行dfs,因为只有开关两种状态,0或1
#include <cmath>
#
hihoCoder#1196 : 高斯消元·二(开关灯问题)传送门
高斯消元解异或方程组
小Ho在游戏板上忙碌了30分钟,任然没有办法完成,于是他只好求助于小Hi。
小Ho:小Hi,这次又该怎么办呢?
小Hi:让我们来分析一下吧。
首先对于每一个
【模板】高斯消元法传送门
关于高斯消元的具体过程
详见百度经验
模板
#include <cmath>
#include <cstdio>
#include <iostream>
#define N 201
using namespace std;
int n;
double a[
[luoguP1835] 素数密度_NOI导刊2011提高(04)(素数筛)传送门
数据辣么大,怎么搞?(L≤R≤2147483647)
注意到RL≤1000000
所以可以直接筛RL区间内的数,
但是需要用已知的小的素数筛,
RL区间内的大部分数肯定能用较小的素数筛去,但是还
[luoguP1044] 栈(数论?)传送门
卡特兰数
代码
#include <cstdio>
int n;
long long f[20];
int main()
[luoguP1069] 细胞分裂(数论)传送门
分解质因数,不说了
这题坑了我2个多小时
教训
不熟悉位运算的优先级一定要加括号!!!!
#include <cstdio>
#include <iostream>
#define N 1000001
#define LL long lon
[luoguP1072] Hankson 的趣味题(数论)传送门
由题意得
gcd(x, a0) = a1 ——>gcd(x / a1, a0 / a1) = 1
lcm(x, b0) = b1 ——> x * b0 / gcd(x, b0) = b1 ——> gcd(x, b0) = x * b0 / b1 ——> gcd(b1 / b0
[luoguP2158] [SDOI2008]仪仗队(数论)传送门
可以看出 (i, j) 能被看到,(i * k, j * k) 都会被挡住
暴力
所以 gcd(i, j) == 1 的话 ans ++
那么可以枚举一半(中轴对称),求解答案,只能拿30分
#include <cstdio>
[luoguP1029] 最大公约数和最小公倍数问题(数论)传送门
一.暴力枚举(加了点优化)
#include <cstdio>
int x, y, ans;
inline int gcd(int x, int y)
inline int lcm(int x, int y)
int main()
二.降维
通过关系
[luoguP1134] 阶乘问题(数论)传送门
我直接用 long long 暴力,居然过了
——代码
#include <cstdio>
int n;
long long x, ans = 1;
int main()
printf("%lld\n", ans % 10);
return 0;
}
[luoguP1403] [AHOI2005]约数研究(这。。。)传送门
用类似筛法的原理,就好啦
——代码
#include <cstdio>
int n, ans;
int a[1000001];
int main()
换一个思路,考虑每一个数对答案的贡献,发现
1 是 n / 1
[luoguP1516] 青蛙的约会(扩展欧几里得)传送门
对于数论只会gcd的我,也要下定决心补数论了
列出方程
(x + t * m) % l = (y + t * n) % l
那么假设 这两个式子之间相差 num 个 l,即为
x + t * m = y + t * n +
[HDU1576] A/B(扩展欧几里得)传送门
n = A % 9973 > n = A A / 9973 * 9973
设 x = A / B(题目所述,B|A) > A = B * x
所以 B * x A / 9973 * 9973 = n
设 y = A / 9973
则 B * x 9973 * y = n
B 和 n
[luoguP1082] 同余方程(扩展欧几里得)传送门
ax≡1(mod b)
这个式子就是 a * x % b == 1 % b
相当于 a * x b * y == 1
只有当 gcd(a,b) == 1 时才有解,也就是说 ax + by = c 有解的充要条件是 c % gcd(a,b) =
基本数论算法dalao博客,至少很好看。。
因为本人数论实在渣渣,但是考试确是得考的,只好尽早学,尽早掌握。
最大公因数
普通gcd
O(log(min(a,b)))
1 inline int gcd(int x,int y)
2









