#include <cstdio>

using namespace std;

long long gcd(long long a, long long b) { // (a, b)
return b ? gcd(b, a % b) : a;
} long long exGcd(long long a, long long b, long long &x, long long &y) { // ax + by = 1
if (b == ) {
x = , y = ;
return a;
}
long long d = exGcd(b, a % b, x, y);
long long t = x;
x = y;
y = t - a / b * y;
return d;
} bool calcInv(long long a, long long p, long long &inv) { // Inv_a % p
long long x, y;
long long d = exGcd(a, p, x, y);
if ( % d == ) return inv = (x % p + p) % p, ;
else return ;
} bool calcLinear(long long a, long long b, long long c, long long &x, long long &y) { // ax + by = c
long long _x = x, _y = y;
long long d = exGcd(a, b, _x, _y);
if (c % d) return ;
x = _x * c / d, y = _y * c / d;
return ;
} class CRT { // x = ai mod mi
public :
bool merge(long long a, long long m, long long b, long long n, long long &r, long long &p) {
long long g = gcd(m, n);
long long c = b - a;
if (c % g) return ;
c = (c % n + n) % n;
c /= g, m /= g, n /= g;
long long inv; calcInv(m, n, inv);
c *= inv, c %= n, c *= m * g, c += a;
p = m * n * g, r = (c % p + p) % p;
return ;
} long long calc(long long *a, long long *m, long long n) {
long long remain = a[], p = m[];
for (int i = ; i <= n; ++ i) {
long long _r, _p;
if (!merge(remain, p, a[i], m[i], _r, _p)) return -;
remain = _r, p = _p;
}
return (remain % p + p) % p;
}
} ; template <int SIZE> class calcPrimeNumbers { // calc the prime numbers below SIZE
public :
int isNotPrime[SIZE + ];
int primes[SIZE + ];
int primeCnt; void sieve(int lim) {
for (int i = ; i <= lim; ++ i) {
if (!isNotPrime[i]) primes[++ primeCnt] = i;
for (int j = ; j <= primeCnt && i * primes[j] <= lim; ++ j) {
isNotPrime[i * primes[j]] = ;
if (i % primes[j] == ) break ;
}
}
}
} ; long long mul(long long a, long long b, long long p) { // a * b % p;
long long ret = ;
for (int i = ; ~ i; -- i)
ret = (ret + ret) % p, b & (1ll << i) ? ret = (ret + a) % p : ;
return ret % p;
} long long quickPower(long long a, long long b, long long p) { // a ^ b % p
long long ret = ;
for ( ; b; b >>= , a = mul(a, a, p))
b % ? ret = mul(ret, a, p) : ;
return ret;
} template <int SIZE> class gaussian { // gaussian elimination
public :
double mat[SIZE + ][SIZE + ];
double ans[SIZE + ]; void gauss(int n) {
static int id[SIZE + ];
for (int i = ; i <= n; ++ i) id[i] = i;
for (int i = ; i <= n; ++ i) {
int now = i;
for ( ; now <= n; ++ now) {
if (mat[id[now]][i] != ) break ;
}
if (now == n + ) continue ;
swap(id[now], id[i]);
for (int j = i + ; j <= n; ++ j) {
int ii = id[i], ij = id[j];
double t = mat[ij][i] / mat[ii][i];
for (int k = n + ; k >= i; -- k) {
mat[ij][k] = mat[ii][k] * t - mat[ij][k];
}
}
}
for (int i = n; i; -- i) {
double count = mat[id[i]][n + ];
for (int j = n; j > i; -- j) {
count -= mat[id[i]][j] * ans[j];
}
ans[i] = count / mat[id[i]][i];
}
}
} ; template <int SIZE> class calcPhi { // calc the phi
public :
int isNotPrime[SIZE + ], primes[SIZE + ], primeCnt;
int phi[SIZE + ]; void sieve(int lim) {
phi[] = ;
for (int i = ; i <= lim; ++ i) {
if (!isNotPrime[i]) {
primes[++ primeCnt] = i;
phi[i] = i - ;
}
for (int j = ; j <= primeCnt && i * primes[j] <= lim; ++ j) {
isNotPrime[i * primes[j]] = ;
if (i % primes[j] == ) {
phi[i * primes[j]] = phi[i] * primes[j];
break ;
}
else {
phi[i * primes[j]] = phi[i] * (primes[j] - );
}
}
}
}
} ; int main() {
return ;
}

by yjl

  %%%yjl

QAQ数论模板笔记√的更多相关文章

  1. QAQ高精度模板笔记√

    #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #i ...

  2. 五一DAY1数论学习笔记

    by ruanxingzhi 整除性 如果a能把b除尽,也就是没有余数,则我们称a整除b,亦称b被a整除.(不是除以,是整除!!) 记作:\(a|b\) |这个竖杠就是整除符号 整除的性质 自反性 对 ...

  3. 数论学习笔记之解线性方程 a*x + b*y = gcd(a,b)

    ~>>_<<~ 咳咳!!!今天写此笔记,以防他日老年痴呆后不会解方程了!!! Begin ! ~1~, 首先呢,就看到了一个 gcd(a,b),这是什么鬼玩意呢?什么鬼玩意并不 ...

  4. c++模板笔记

    使用vc2015进行C++ 模板的学习实验和笔记 用简单示例学习了解STL template大部头理论书 讲解各种规则和各种规则例外的解决办法 集中精力在20%的规则中的阴暗角落而不是80%实践中要注 ...

  5. Matrix Admin 后台模板笔记

    一个后台模板用久了就想换一个.上次找到了Matrix Admin.和ACE一样都是Bootstrap风格,比较容易上手.Matrix要更健壮些.感觉拿去做用户界面也是可以的. 整体风格: 1.表单验证 ...

  6. 【Python】Flask系列-模板笔记

    Jinja2模板 Jinja2模板传参 如何渲染模板: 模板放在templates文件夹下 从flask中导入render_template函数. 在视图函数中,使用render_template函数 ...

  7. NOIP考前复习-数制转换,数论模板与文件读写

    数制转换有两种题型,一般一题,分值1.5分. 题型一:R进制转十进制 解法就是:按权展开,但要注意各个位的权,最低位(最右边)的权是0次方,权值为1. 纯整数的情况: (11010110)2 = 1× ...

  8. Thymeleaf模板笔记

    1.常用标签: 使用thymeleaf模板,首要在html中引入: <html xmlns:th="http://www.thymeleaf.org"> 引入css.j ...

  9. d3基础图形模板笔记

    散点图(scatter plot): http://bl.ocks.org/weiglemc/6185069 雷达图(radar): http://xgfe.github.io/uploads/che ...

随机推荐

  1. 设置datagridview中button按钮的背景颜色

    问题:DataGridViewButtonColumn()在datagridview中创建按钮列,如何设置按钮的背景颜色(不是单元格的背景颜色). 回答:可以在dataGridView1_CellPa ...

  2. 高德amap 根据坐标获取的地址信息

    高德地理逆地理编码接口List<List<Address>> lists = coder.getFromLocation(33.00, 116.500, 3, 3, 3, 50 ...

  3. jquery ready()的几种实现方法小结

    几种jQuery的ready ()的写法. 1.最常用也是最标准的  $(document).ready(){  });  2.是上面的简写:  $(function(){  })  很奇怪?为什么能 ...

  4. WPF-数据绑定:日期时间格式

    WPF-数据绑定:日期时间格式绑定后自定义格式的例子. 我刚才遇到的问题是绑定完之后,星期始终显示为英文.需要一个属性ConverterCulture制定区域. 如下: {Binding dateti ...

  5. ALTER TABLE causes auto_increment resulting key 'PRIMARY'

    修改表为主键的自动增长值时,报出以下错误:mysql> ALTER TABLE YOON CHANGE COLUMN id id INT(11) NOT NULL AUTO_INCREMENT ...

  6. 一些 PHP 管理系统程序中的后门

    一些php网站管理程序的,一些后门,其实官方也没有恶意,主要是大家为了自己的安全. 我倒不怎么关心提示框,SABLOG怎么知道我的版本有漏洞呢,程序肯定有后门.每次登陆后台自动检测官方版本跟当前版本对 ...

  7. Setting composer minimum stability for your application

    Do you have a confusion of how do you determine the stability when using composer dependency manager ...

  8. 第三章 DispatcherServlet详解

    3.1.DispatcherServlet作用 DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring Io ...

  9. 101个MySQL的调节和优化的Tips

    MySQL 是一个功能强大的开源数据库.随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它的极限.这里是101条调节和优化MySQL安装的技巧.一些技巧是针对特定的安装环境的,但这些 ...

  10. UML 小结(1)- 整体阐述

    前言:              UML( Unified Modeling Language) 又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形 ...