Lruihao

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's Github chart

欧拉函数

1 欧拉函数是求小于 x 并且和 x互质 的数的个数

通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)
其中 p1, p2……pn 为 x 的所有质因数,x 是不为 0 的整数
φ(1)=1(唯一和 1 互质的数就是 1 本身)【注意:每种质因数只一个。比如 12=223】

2 定理

  1. 若 n 是素数 p 的 k 次幂,φ(n)=p^k-p^(k-1)=(p-1)p^(k-1),因为除了 p 的倍数外,其他数都跟 n 互质 IMG_20180808_170807.jpg
  2. 欧拉函数是积性函数——若 m,n 互质,φ(mn)=φ(m)φ(n)

3 特殊性质

  1. 当 n 为奇数时,φ(2n)=φ(n)
  2. p 是素数,φ(p) = p - 1,φ(p) 称为 p 的欧拉值
  3. 若 a 为素数,b mod a=0,φ(a*b)=φ(b)*a

Heavy Transportation-poj1797(dijkstra 或最大生成树)

题目链接

大意:
要从城市 1 到城市 N 运送货物,有 M 条道路,每条道路都有它的最大载重量,问从城市 1 到城市 N 运送最多的重量是多少。
其实题意很简单,就是找一条 1–>N 的路径,在不超过每条路径的最大载重量的情况下,使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边; 更新

Til the Cows Come Home-poj2387(dijkstra 判断重边)

题目链接 题目大意: 说的是,一只奶牛位于 N 号节点,输入 N 个节点和 T 对双向的边,求出由 N 到 1 的最短的距离,其实就是问的单源最短路问题。 两个点可能有多条路,选择最短的。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; const int INF=99999999; //设为无穷

最短路入门

1 Dijkstra 算法 1.1 1. 定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等

小希的迷宫-HDU-1272(并查集 or 树性质)

1 题目链接:小希的迷宫

2 并查集

  • 无回路
  • 单连通

并查集做,首先想到的是判断两个点是否连通,不连通就合并,已连通的话说明会形成回路,则可以判定 No,交了一发错了。
想了一下没有考虑到多个连通域的情况,该题必须只有一个连通域

3 树的性质

既然单连通无回路,则这肯定是一棵树;那么 edge=v-1;

Bear and Finding Criminals-Codeforces680B

题目链接:Bear and Finding Criminals

大致题意就是小熊警察住在某个城市,他要抓各个城市的罪犯,现在用一个 BCD 可以知道那个城市里一定有罪犯。

一定能确定该城市有小偷的几种情况:

  1. 警察所住城市有罪犯,则一定能检测到

  2. 警察所住城市的左边和右边位置若不为 0,则说明两座城市都有罪犯(只有一边为 1 是不能确定到底哪个城市有罪犯的)

  3. 警察所在城市的一边检测到有罪犯,但在另一边已经没有城市了,则说明该城市一定有罪犯

0%