【AcWing】 数学知识 听课笔记

编程入门 行业动态 更新时间:2024-10-11 15:15:30

【AcWing】 <a href=https://www.elefans.com/category/jswz/34/1729868.html style=数学知识 听课笔记"/>

【AcWing】 数学知识 听课笔记

ACwing数学知识听课笔记

  • 质数
  • 约数
  • 欧拉函数
  • 快速幂
  • 扩展欧几里得算法
  • 中国剩余定理
  • 高斯消元
  • 组合计数
  • 容斥原理
  • 简单博弈论

质数

试除法判定质数

bool is_prime(int n)
{if (n < 2) return false;for (int i = 2; i <= n / i; i ++)if (n % i == 0)return false;return true;
}

试除法分解质因数

#include<iostream>
#include<algorithm>using namespace std;void divide(int x)
{for (int i = 2; i <= x / i; i ++ )if (x % i == 0) //此处 i 一定是质数{int s = 0;while (x % i == 0) x /= i, s ++ ;cout << i << ' ' << s << endl;} 			//如果x没有除尽,转入下一个判断if (x > 1) cout << x << ' ' << 1 << endl;cout << endl;
}int main()
{int n;scanf("%d", &n);while (n -- ){int x;scanf("%d", &x);divide(x);}return 0;
}
普通筛法
#include<iostream>
#include<algorithm>using namespace std;const int N = 1000010;int primes[N], cnt;     // primes[]存储所有素数
bool st[N];         // st[x]存储x是否被筛掉void get_primes(int n)
{for (int i = 2; i <= n; i ++ ){if (st[i]) continue;primes[cnt ++ ] = i;for (int j = i + i; j <= n; j += i)st[j] = true;}
}
int main()
{int n;cin >> n;get_primes(n);cout << cnt << endl;return 0;
}//8
//4
埃氏筛法
#include<iostream>
#include<algorithm>using namespace std;const int N = 1000010;int primes[N], cnt;bool st[N];void get_primes(int n){for (int i = 2; i <= n; i ++){if (!st[i]){primes[cnt ++] = n;for (int j = i + i; j <= n; j += i) st[j] = true;}}}int main(){int n;cin >> n;get_primes(n);cout << cnt << endl;return 0;}

约数

欧拉函数

快速幂

扩展欧几里得算法

中国剩余定理

高斯消元

组合计数

容斥原理

简单博弈论

更多推荐

【AcWing】 数学知识 听课笔记

本文发布于:2024-03-14 08:56:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1736107.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数学知识   笔记   AcWing

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!