
数学
Minion_w
这个作者很懒,什么都没留下…
展开
-
Light OJ 1282(B)——Leading and Trailing
题目连接: 点击打开链接题目大意:输入n, k,输出n ^ k的前三位和后三位数字解题思路:后三位用快速幂运算,在运算的过程中注意取余, 前三位用对数进行转换,设x = k * log10(n); -------> 10^x = n^k; x是一个double类型的数据,所以它的整数位对于要求的前三位数字没有作原创 2017-07-23 23:50:20 · 259 阅读 · 0 评论 -
POJ - 2947 Widget Factory(同余式的高斯消元)
题目链接ACCode:#include#include#include#include#includeusing namespace std;const int INF = 0x3f3f3f3f;const int maxn = 310;int mod;int Equ, Var; //方程式的个数, 未知数的个数int A[maxn][maxn]; //增广原创 2018-04-14 15:54:00 · 322 阅读 · 0 评论 -
UVA 1649 Binomial coefficients( 二分 + 二项式的性质 + 枚举)
题目链接AcCode:#include#define M(a, b) make_pair(a, b)using namespace std;typedef long long LL;typedef pair pll;LL m;priority_queue, greater > q;LL C(long long n, int k){ int i; lon原创 2018-03-03 16:23:03 · 467 阅读 · 0 评论 -
求解二次同余式
求解形如 x^2 = a (mod p) 这样的同余式/*模P平方根: 求 X ^2 = a (mod p) 定理:当P为!!!奇素数 !!!的时候 先判断(a / p )的勒让德符号, 若为-1则无解,若为1则有解 分解P-1,然后求B,然后求出X(t-1),和a的逆元 然后开始求 ans = ( a的逆元 * 上一个X的平方(t-k))的(t-k-原创 2017-11-05 16:22:20 · 6141 阅读 · 0 评论 -
矩阵快速幂
矩阵快速幂,原理与整数的快速幂一模(mu)一样,只是在运算的时候是对矩阵进行运算Code :////矩阵快速幂////能够进行幂运算的矩阵一定都是行与列元素个数相等的矩阵#includeusing namespace std;int n;struct Matrix{ int mat[20][20];};Matrix Matrix_Mul(Matrix m1, M原创 2017-10-17 15:21:17 · 297 阅读 · 0 评论 -
UVA 10820——Send a Table(欧拉函数)
题目链接#include#include#include#includeusing namespace std;int phi[50010];//原始方法int euler_phi(int n){ int m = (int)sqrt(n+0.5); int ans = n; for(int i = 2; i <= m; i++) if(n % i =原创 2017-10-23 17:33:58 · 334 阅读 · 0 评论 -
UVA 10791——Minimum Sum LCM (算数基本定理)
题目大意 : 给你一个数n,让你将这个数分解成至少两个数,对每一个分解式进行求和,算出其中最小的那一个。为什么按照算数基本定理算出来的数字就是最小的呐:因为每一个数字都可以运用算数基本定理进行分解,如果所用的因数不是所分解的这些质数,那么那样求出来的和一定比这样分解的数大,因为那些不为素数的数字还可以再继续分。 算数基本定理: 任何一个大于1的自然数 N,那么N可以唯一分解成有限个质数原创 2017-10-22 16:25:12 · 492 阅读 · 0 评论 -
求原根
输入m, 输出它的所有原根 Code:#includeusing namespace std;int ele[100000];bool IsPrime(int num){ bool flag = true; for(int i = 2; i <= sqrt(num); i++) { if(num % i == 0) {原创 2017-10-30 00:08:52 · 962 阅读 · 0 评论 -
欧几里得除法和扩展欧几里得定理
Code:#includeusing namespace std;int gcd(int a, int b) //欧几里得求最大公约数{ if(b == 0) return a; else return gcd(b, a%b);}void ex_gcd(int a, int b, int& d, int& x, int& y) //扩展原创 2017-10-19 18:40:27 · 864 阅读 · 0 评论 -
快速幂运算 与 快速幂取余
在很多情况下,我们队数据的处理的时候需要进行幂运算,但是如果进行n次的话时间复杂度是O(n), 可能会超时, 所以今天学习一种能够优化幂运算的算法 ------- 快速幂运算,能有效的将时间复杂度降低到O(log(n)) 快速幂运算简介: 快速幂运算,可以看做是按位进行的一种取幂运算(二进制的伟大之处), 先看一个例子吧, 以2 的4次方为例:原创 2017-09-19 20:00:46 · 1985 阅读 · 0 评论 -
UVA 1635 Irrelevant Elements(杨辉三角+递推式求组合数+算数基本定理)
题目大意: 1.输入n 和 m, n个数为任意的a1, a2, a3, ...., an,利用杨辉三角的求算方式将这n个数不断加和,求到最后只有一个数 2.然后用最后的和对m 取余数,问哪一个数与m的余数没有关系解题思路: 1.把题目看懂的大概思路就是求出这n个数的杨辉三角的系数,然后看这里面的哪一个数,是m的因子,(因为如果是的话那么它乘上ai也原创 2017-09-25 20:12:15 · 398 阅读 · 0 评论 -
UVA 11806(B)——Cheerleaders 容斥原理 离散数学列举所有情况
题目链接:点击打开链接题目大意:输入m,n,k,在m行n列的矩阵中放k名啦啦队员,要求四条边框每一个至少都要有一名啦啦队员,问有多少中放法解题思路:直接放的话会很麻烦,所以可以从它的反方向去考虑问题,求算出四条边上没有放满啦啦队员的情况,用sum减去就可以了运用到了容斥原理(包含排斥原理)对于4条边没有啦啦队员的情况,一共有15种情况可以用离散数学的极大项,极小项那样的思路来处理,用位原创 2017-07-28 00:14:06 · 591 阅读 · 0 评论 -
UVA 11149(B)——Power of Matrix (矩阵快速幂,倍增法)
题目链接:点击打开链接题目大意;输入n, k求出来n行n列的矩阵的1次幂 + 2次幂 + ... + k次幂的和解题思路:为了控制时间,首先想到的是用快速幂,但是还有n项,所以求和所需要很多时间,可以用倍增来解决这个问题代码://UVA 11149矩阵快速幂,倍增#include#include#includeusing namespace std;class Ma原创 2017-07-27 18:21:22 · 492 阅读 · 0 评论 -
UVA 11181(C) ——Probability|Given (条件概率, dfs求组合)
题目连接:点击打开链接题目大意:有n个人去买东西,其中有r人买了东西,剩下的人只是逛了逛而已,现在给了你每个人买东西的概率,让你来求算每个人真正买到买东西的概率;简而言之,就是求在r个人买到东西的前提之下,A买了东西的概率解题思路:P(A|B) = P(AB)/P(B); P(AB)为买东西的人中有A的概率,P(B)为所有的情况的总概率,也就是全概率全概率的求算方法:找原创 2017-07-27 11:02:06 · 337 阅读 · 0 评论 -
FZU 2148 ——Moon Game 判断凸四边形
题目链接:点击打开链接题目大意:给你一堆的点,然后判断最多能组成多少个凸四边形解题思路:因为最多有30个点,所以直接暴力搜索就可以了 所学知识点: 如何判断凸四边形,在这种有坐标的情况下当然是用对角线相交来做了 如何判断对角线相交呐:如果两条线段相交,则这两条线段必然相互相互跨立,所以用两次叉积都小于等于0来做就可以了在判断原创 2017-08-11 10:45:55 · 732 阅读 · 0 评论 -
UVA 1639——Candy(期望,精度处理)
题目链接:点击打开链接题目大意:p为打开盒子1的概率, 1-p为打开盒子2的概率,求打开一个盒子其中的糖数为零时,另一个盒子里的剩余糖数主要知识点:求算期望,但是由于题目要求的精度比较高,所以用double会损失精度,所以要用long double同时还要运用对数的有关知识来进行精度的运算解题思路:另一个盒子里还剩下i块糖的概率(在这之前另一个盒子一定拿走了n块,这个盒子拿走了n-原创 2017-07-24 00:41:31 · 518 阅读 · 0 评论 -
HDU - 3037 Saving Beans
题目链接题目大意:将不大于m个种子随机放在n个树上,有多少种可能的结果数据量可能有点大,结果模一个素数p/*插板法:将N个物品分成M组,每一组至少有一件物品,这个问题就能转换成N个物品摆在桌子上,然后中间有N-1个空,在这N-1个空里面找M个位置,把板子插进去*//*但是本题划分的组里面有含有的板子为0的情况所以 每一种的情况为 C(n+i-1, i)组合数的递推公原创 2018-03-28 20:30:25 · 271 阅读 · 0 评论