
数论
相思明月楼
学生一枚,所言之处,如有不当,敬请指正。
展开
-
牛客小白月赛7 谁是神箭手
题目描述有一天,MWH突然来了兴致,想和CSL比比谁枪法好。于是他们找来了一个瓶子,比比看谁先打中这个瓶子。 给定MWH的命中率和CSL的命中率。 两人轮流射击,MWH先手,问谁获胜的概率大?输入描述:输入两个整数和,表示MWH和CSL的命中率。.输出描述:若MWH获胜的概率大,则输出"MWH"。 若CSL获胜的概率大,则输出"CSL",否则输出"equal"。输入:...原创 2018-09-15 21:22:52 · 721 阅读 · 0 评论 -
HDU 1757 A Simple Math Problem(矩阵快速幂)
Problem Description Lele now is thinking about a simple function f(x). If x < 10 f(x) = x. If x >= 10 f(x) = a0 * f(x-1) + a1 * f(x-2) + a2 * f(x-3) + …… + a9 * f(x-10); And ai(...原创 2018-08-10 11:43:28 · 259 阅读 · 0 评论 -
矩形覆盖
问题描述:用n个2*1的小矩形覆盖一个2*n的大矩形,问一共可以有多少种覆盖方法?根据图片可以容易的得出公式代码实现:int RectCover(int n) { if(n==1) { return 1; } else if(n==2) { return 2; } else { return RectCover(n-1) + RectCover(n-2)...原创 2018-07-22 08:14:06 · 238 阅读 · 0 评论 -
HDU 1566 Color the ball(树状数组 区间更新,单点查询)
Problem DescriptionN个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色。但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗?Input每个测试实例第一行为一个整数N,(N <= 10...原创 2018-07-25 21:06:15 · 394 阅读 · 0 评论 -
HDU 1166 敌兵布阵(树状数组 单点更新,区间查询)
Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。...原创 2018-07-25 20:57:39 · 197 阅读 · 0 评论 -
数字1的数量
给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数。例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。Input输入N(1 <= N <= 10^9)Output输出包含1的个数Input示例12Output示例5解法: 1位数的情况: 大于等于1的时候,有1个,小于1就没有。 2...原创 2018-06-19 11:02:06 · 934 阅读 · 0 评论 -
1014 X^2 Mod P
1014 X^2 Mod PX*X mod P = A,其中P为质数。给出P和A,求<=P的所有X。Input两个数P A,中间用空格隔开。(1 <= A < P <= 1000000, P为质数)Output输出符合条件的X,且0 <= X <= P,如果有多个,按照升序排列,中间用空格隔开。如果没有符合条件的X,输出:No SolutionInput示例1...原创 2018-06-15 21:09:56 · 275 阅读 · 0 评论 -
1046 A^B Mod C (快速幂)
给出3个正整数A B C,求A^B Mod C。例如,3 5 8,3^5 Mod 8 = 3。Input3个正整数A B C,中间用空格分隔。(1 <= A,B,C <= 10^9)Output输出计算结果Input示例3 5 8Output示例3#include <iostream> #define ll long longusing namespace std; ...原创 2018-06-15 20:49:14 · 296 阅读 · 0 评论 -
poj 1061 青蛙的约会(拓展欧几里得)
Description两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了...原创 2018-06-08 21:43:29 · 333 阅读 · 0 评论 -
逆元的意义及求法
快速幂求逆元:int q_pow(int a,int n,int m) { int ans = 1; while(n) { if (n&1) { ans = ans*a%m; } a = a*a%m; n >>= 1; } ...原创 2018-06-08 21:00:53 · 1237 阅读 · 0 评论 -
51Nod 1003 阶乘后面0的数量(思路+递归)
题目大意:求n的阶乘末尾有多少个0.#include <iostream>#include <vector>#include <cstdio>using namespace std;int f(int n) { if(n < 5) { return 0; } return n/5 + f(n/5);}...原创 2018-08-12 17:13:30 · 251 阅读 · 0 评论 -
51Nod 1004 n^n的末位数字(快速幂+模运算)
Problem给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字。Input一个数N(1 <= N <= 10^9)Output输出N^N的末位数字Input示例13Output示例3#include <iostream>#include <cstdio>using namespace std;...原创 2018-08-12 17:18:31 · 309 阅读 · 0 评论 -
ICPC2017南宁邀请赛1001&&HDU6182 A Math Problem
Problem Description You are given a positive integer n, please count how many positive integers k satisfy kk≤n . Input There are no more than 50 test cases. Each case only contains ...原创 2018-08-15 10:35:01 · 367 阅读 · 0 评论 -
欧拉函数
#include <iostream>#include <cstdio>using namespace std;const int Max = 100000;int euler[Max];void Init(){ euler[1] = 1; for(int i = 2; i < Max; i++) { euler[i]=i; ...原创 2018-08-31 18:56:55 · 321 阅读 · 0 评论 -
HDU 3037 Saving Beans (Lucas定理求大数组合数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3037#include <iostream>#include <cstdio>using namespace std;typedef long long ll;const int N = 150000;ll n, m, p;ll fac[N];void in...原创 2018-08-21 11:54:21 · 365 阅读 · 2 评论 -
HDU 6362 oval-and-rectangle(圆锥曲线+积分+函数期望)
Problem Description Patrick Star find an oval. The half of longer axes is on the x-axis with length a . The half of shorter axes is on the y-axis with length b . Patrick Star plan to ...原创 2018-08-21 11:50:46 · 349 阅读 · 0 评论 -
求2的n次方
方法一这样最多可以计算出2的1000次方左右。#include <iostream>#include <cmath>#include <iomanip>using namespace std;int main() { int n; while(cin>>n) { cout<<fixed&l...原创 2018-08-26 16:51:10 · 3074 阅读 · 0 评论 -
勾股数规律(任意三个数能够满足勾股定理需要满足的条件)
一、勾股数形如 一类的数称为勾股数(a,b,c为正整数)。二、一些性质1.直角三角形的两条直角边和斜边满足勾股数定理。2. . .3.当a为奇数时,,则 , . 4.当a为偶数时,, 则 , . 三、费马大定理, 当n>2时,方程没有正解。...原创 2018-08-26 13:21:47 · 13889 阅读 · 0 评论 -
HDU 1071 The area (数学求定积分)
Problem Description Ignatius bought a land last week, but he didn't know the area of the land because the land is enclosed by a parabola and a straight line. The picture below shows the area. N...原创 2018-08-15 10:53:30 · 481 阅读 · 0 评论 -
矩阵的和(规律)
Problem Description我们定义如下矩阵: 1/1 1/2 1/3 1/2 1/1 1/2 1/3 1/2 1/1 矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增。 请求出这个矩阵的总和。 Input每行给定整数N (N<50000),表示矩阵为 N*N.当N为0时,输入结束。Output输出答案,保留2位小数。Sample In...原创 2018-08-15 10:47:09 · 2261 阅读 · 0 评论 -
HDU 6112 今夕何夕(模拟)
Problem Description 今天是2017年8月6日,农历闰六月十五。 小度独自凭栏,望着一轮圆月,发出了“今夕何夕,见此良人”的寂寞感慨。 为了排遣郁结,它决定思考一个数学问题:接下来最近的哪一年里的同一个日子,和今天的星期数一样?比如今天是8月6日,星期日。下一个也是星期日的8月6日发生在2023年。 小贴士:在公历中,能被4整除但不能被100整除...原创 2018-08-15 10:40:10 · 512 阅读 · 0 评论 -
约瑟夫环
N个人坐成一个圆环(编号为1 - N),从第1个人开始报数,数到K的人出列,后面的人重新从1开始报数。问最后剩下的人的编号。例如:N = 3,K = 2。2号先出列,然后是1号,最后剩下的是3号。Input2个数N和K,表示N个人,数到K出列。(2 <= N, K <= 10^6)Output最后剩下的人的编号Input示例3 2Output示例3约瑟夫环#include <io...原创 2018-06-15 18:05:51 · 290 阅读 · 0 评论 -
N的阶乘的长度
输入N求N的阶乘的10进制表示的长度。例如6! = 720,长度为3。Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000)第2 - T + 1行:每行1个数N。(1 <= N <= 10^9)Output共T行,输出对应的阶乘的长度。Input示例3456Output示例233斯特林公式#include <iostr...原创 2018-06-15 14:46:41 · 431 阅读 · 0 评论 -
世界上最完美的公式 ----欧拉公式
复变函数论里的欧拉公式: e^ix=cosx+isinx,e是自然对数的底,i是虚数单位。它将三角函数的定义域扩大到复数,建立了三角函数和指数函数的关系,它在复变函数论里占有非常重要的地位. 将公式里的x换成-x,得到: e^-ix=cosx-isinx,然后采用两式相加减的方法得到: sinx=(e^ix-e^-ix)/(2i),cosx=(e^ix+e^-ix)/2.这两个也叫做欧拉公式...原创 2018-06-03 18:57:19 · 5914 阅读 · 0 评论 -
平方倒数和 (计蒜客) + 一些数论公式
求以下三数的和,1-a1−a 之和,1-b1−b 的平方和,1-c1−c 的倒数和。输入格式输入三个数字 a,b,c(1\leq a \leq 100,1\leq b \leq 1000,1\leq c \leq 10000)a,b,c(1≤a≤100,1≤b≤1000,1≤c≤10000)。输出格式输出 1+2+\ldots +a + 1^2 + 2^2+\ldots +b^2 + \frac{...原创 2018-06-03 18:55:33 · 2952 阅读 · 0 评论 -
求大数的阶乘
对于大数来说,一个数的阶乘是非常大的,同样,一个int类型的整数,他的阶乘就有可能会很大。就拿50来说,他的阶乘位数是65位,就已经远远超过了long long int类型的最大值。这时候,我们要通过字符串的方法,来进行阶乘的运算。当然,需要注意的是:我们所求一个数的阶乘,这个数是在int范围内的,5000的阶乘位数是16326位。其方法是:首先,我们是可以先求一定范围内的最大值的阶乘位数,以便于...原创 2018-06-03 17:24:15 · 814 阅读 · 0 评论 -
求任意两个数的最大公因数和最小公倍数
有A和B两个整数最大公因数: 在A和B的因数中能同时整除A和B的最大的数。 求法:辗转相除法(欧几里得算法)int gcd(int m , int n){ int r = 0 ; while(n){ r = m%n; m = n; n = r; } return m;}在C++ algorithm头文件中...原创 2018-06-03 12:12:47 · 2716 阅读 · 0 评论 -
三角形的内点数(计蒜客)
在一个平面坐标系中,我们可以选出三个不全在一条线上的点构成一个三角形。我们称一个在三角形内(不包含三角形的边上),横纵坐标皆为整数的点位这个三角形的内点。 对于一个由(0,0)、(n,m)、(p,0)作为顶点构成的三角形,请你设计程序求出他的内点数。输入包括一行,包括三个用空格分隔的整数,分别为n,m,p(0 ≤ n < 32000,0 < m < 32000,0 < p ...原创 2018-06-03 11:53:09 · 678 阅读 · 0 评论 -
皮克定理(计算多边形面积)
皮克定理:用于计算点阵中顶点在格点上的多边形的面积;公式表达为2S= 2a + b - 2.S表示多边形的面积,a表示多边形内部的点数,b表示多边形边界上的点数。假设有一个直角三角形,它的两条直角边上的点数分别为x、y,那么它的斜边上的点数等于gcd(x,y);验证:...原创 2018-06-03 11:08:42 · 11576 阅读 · 0 评论 -
判断点是否在三角形内部
判断点是否在三角形内概述给定三角形ABC和一点P(x,y),判断点P是否在ABC内。这是游戏设计中一个常见的问题。也是《算法竞赛入门经典(第一版)》中5.4.3节“果园中的树”中的问题。重心法该方法简单易懂,速度也快,只是多了点向量运算的知识。 在xy坐标系平面中有一个三角形ABC,P是xy平面上的任一点,如下图所示。 对于平面内任意一点P,都可以由如下方程来表示:AP = u*AC + v*A...原创 2018-06-02 21:52:25 · 2256 阅读 · 0 评论 -
绝对值最小的数
输入 10个数,找出其中绝对值最小的数,将它和最后一个数交换。输入格式输入一行包括 10 个绝对值不超过 10001000 的整数。输出格式输出 10 个交换后的整数,答案输出在一行。样例输入10 2 30 40 50 60 70 80 90 100样例输出10 100 30 40 50 60 70 80 90 2 #include <cm...原创 2018-06-02 21:36:47 · 2941 阅读 · 0 评论 -
任意进制转换
输入一个十进制正整数,然后输出它所对应的八进制数。输入格式输入一个十进制正整数 n(1 \leq n \leq 10^6)n(1≤n≤106) 。输出格式输出 nn 对应的八进制数,输出在一行。样例输入10样例输出12代码:#include <iostream>using namespace std;int main() { int n, ans[100], t; ...原创 2018-06-02 21:15:02 · 611 阅读 · 0 评论 -
判断一个数是否为回文数
判断一个数字是否位回文,不能使用额外的空间。一些小提示:负数可能是回文吗?(-123321)最简单的就是转换成字符串,然后判断。但是本题要求不使用额外的空间你也可以考虑将数字反转,但是这样的话,好像很容易溢出哦~所以,这里肯定有一个好办法。希望你能够想出来哦~格式:输入有若干行,每一行输入对应一行输出,直到遇到终止符号。判断是否为回文,是,输出true,否则输出false。样例输入10001100...原创 2018-06-03 22:03:16 · 624 阅读 · 0 评论 -
HDU 1715 大斐波拉契数
Problem DescriptionFibonacci数列,定义如下:f(1)=f(2)=1f(n)=f(n-1)+f(n-2) n>=3。计算第n项Fibonacci数值。 Input输入第一行为一个整数N,接下来N行为整数Pi(1<=Pi<=1000)。 Output输出为N行,每行为对应的f(Pi)。 Sample Input512345 Sample Outp...原创 2018-06-11 20:53:16 · 324 阅读 · 0 评论 -
HDU 1753 大明A+B
Problem Description话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫“大明”。这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会任意长度的正小数的加法。现在,给你两个正的小数A和B,你的任务是代表大明计算出A+B的值。 Input本题目包含多组测试数据,请处理到文件结束。每一组测试数据在一行里面包含两个长度不大于400的正小数A和B。 Out...原创 2018-06-11 21:17:43 · 234 阅读 · 0 评论 -
大数相加 (模板)
#include<iostream>#include<cstring>#include<cstdlib>using namespace std;const int maxn = 1000;char str1[maxn], str2[maxn];int a[maxn], b[maxn];void sum() { for(int i = strle...原创 2018-06-07 21:54:18 · 396 阅读 · 0 评论 -
1134 最长递增子序列
1134 最长递增子序列给出长度为N的数组,找出这个数组的最长递增子序列。(递增子序列是指,子序列的元素是递增的)例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10。Input第1行:1个数N,N为序列的长度(2 <= N <= 50000)第2 - N + 1行:每行1个数,对应序列的元素(-10^9 <= S[i] <= 10^9)Outpu...原创 2018-06-21 18:59:49 · 488 阅读 · 0 评论 -
HDU 1370 Biorhythms(中国剩余定理)
Problem DescriptionSome people believe that there are three cycles in a person's life that start the day he or she is born. These three cycles are the physical, emotional, and intellectual cycles, and...原创 2018-06-13 20:42:50 · 327 阅读 · 0 评论 -
HDU 1164 Eddy's research I(素数积)
Problem DescriptionEddy's interest is very extensive, recently he is interested in prime number. Eddy discover the all number owned can be divided into the multiply of prime number, but he can't write...原创 2018-06-13 12:13:42 · 255 阅读 · 0 评论 -
HDU 1019 Least Common Multiple
Problem DescriptionThe least common multiple (LCM) of a set of positive integers is the smallest positive integer which is divisible by all the numbers in the set. For example, the LCM of 5, 7 and 15 ...原创 2018-06-12 22:09:41 · 210 阅读 · 0 评论