![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM--数学
文章平均质量分 72
u010793761
这个作者很懒,什么都没留下…
展开
-
hdu2608 0 or 1
/*分析:假设数n=2^k*p1^s1*p2^s2*p3^s3*...*pi^si;//k,s1...si>=0,p1..pi为n的素因子所以T[n]=(2^0+2^1+...+2^k)*(p1^0+p1^1+...+p1^s1)*...*(pi^0+pi^1+...+pi^si);显然(2^0+2^1+...+2^k)%2=1,所以T[n]是0或1就取决于(p1^0+p1^1+...+p1原创 2013-08-19 16:09:20 · 506 阅读 · 0 评论 -
poj1019 Number Sequence,我的思路简单,使用了优化解决
题目大意:一条有规律的数列,该数列就是1,12,123,1234,12345,123456这样的规律“112123123412345123456123456712345678123456789123” 然后题目输入一个下标,叫我们输出该位上的数字是几,容易做错超时;我第一次提交的超时了,后面优化了一下566K, 0MS 过了,但是看看status才发现有很多人是 我的解法:使用两个数组原创 2014-02-19 15:08:15 · 486 阅读 · 0 评论 -
大整数模板
#include #include #include #include #include #include using namespace std; #define DIGIT 4 //四位隔开,即万进制 #define DEPTH 10000 //万进制 #define MAX 800 typede原创 2013-08-29 20:19:03 · 457 阅读 · 0 评论 -
ACM数论题集
Volume 1http://acm.hdu.edu.cn/showproblem.php?pid=1005http://acm.hdu.edu.cn/showproblem.php?pid=1014http://acm.hdu.edu.cn/showproblem.php?pid=1019Volume 2http://acm.hdu.edu.cn/showproblem.原创 2013-10-22 16:25:37 · 844 阅读 · 0 评论 -
求解x=a^b(mod m)的几种方法
求解x=a^b(mod m)Posted on 2012 年 11 月 6 日by NARUTOACM— 14 Comments ↓本文致力于解决如下问题:求解x≡ab(mod m),其中a,b,m都是正整数。如果b足够小,则可直接用逐次平方法求解,如果你不知道逐次平方法,可以先看这里。所以这里假设b足够大(这不是说是一个64位整数,而是可以上百上千位的一个数),大到逐次平原创 2015-03-29 15:27:19 · 14000 阅读 · 0 评论 -
hdu1018大数阶乘的位数,斯特林数的各种应用
Big NumberTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 23115 Accepted Submission(s): 10424Problem DescriptionIn many appli原创 2014-02-16 10:13:02 · 543 阅读 · 0 评论 -
hdu2179 求 PI,精确到小数点后1500位,麦金公式,java大数
麦金公式#include#includeint main(){ double s; int b,x,n,c,i,j,d,l,a[1500]; while(scanf("%d",&n)!=EOF&&n!=0) { x=5*n; for(s=0,n=1; n<=5000; n++) {原创 2014-03-12 20:35:47 · 928 阅读 · 0 评论 -
pku 1319Prime Cuts
Prime CutsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1786 Accepted Submission(s): 755Problem DescriptionA prime number i原创 2014-04-08 18:40:37 · 483 阅读 · 0 评论 -
pojJoseph 约瑟夫环问题
JosephTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 46332 Accepted: 17459DescriptionThe Joseph's problem is notoriously known. For those who are not原创 2014-02-28 19:08:45 · 607 阅读 · 0 评论 -
poj 1102 LC—display
题意:像这样的显示数字2 123453 678900 0Sample Output -- -- -- | | | | | | | | | | | | -- -- -- -- | | | | | | | | | |原创 2014-04-15 14:46:56 · 463 阅读 · 0 评论 -
hdu2197 本源串
分析:长度为n的本源串=2^n-长度为n的非本源串,对于长度为n的非本源串一定是由长度为m的串循环k次得到的,所以m一定是n的约数,所以只需要求到所有n的约数长度构成的本源串个数即可(不能求构成串之和,因为可能重复相加了,比如x是m的约数,则x一定是n的约数,则m的串包含x,只能m得本源串+x的本源串)所以n的本源串个数sum[n]=2^n-(sum[x1]+sum[x2]+....sum[m]+原创 2013-08-19 15:45:08 · 631 阅读 · 0 评论 -
poj2356Find a multiple 抽屉原理
Find a multipleTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 5409 Accepted: 2348 Special JudgeDescriptionThe input contains N natural (i.e. posi原创 2014-02-27 17:24:12 · 514 阅读 · 0 评论 -
hdu1205吃糖果 鸽笼定理基础
吃糖果Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 20631 Accepted Submission(s): 5918Problem DescriptionHOHO,终于从Speakless手上赢走原创 2014-02-27 15:43:52 · 608 阅读 · 0 评论 -
hdu 2207 子网掩码转换确定
不知道你是否注意过你的电脑上下面的网络信息:“连接状态:地址类型: 通过DHCP指派 IP地址: 60.176.38.23 子网掩码: 255.255.252.0 默认网关: 60.176.36.1 首选DNS服务器: 210.32.32.1 备用DNS服务器: 210原创 2014-04-14 20:59:14 · 808 阅读 · 0 评论 -
poj 1385 找多边形的重心
1. 1 累加和求重心设平面上有N 个离散数据点( xi , yi ) ( i = 1, 2, ., n) , 其多边形重心G( . x1, . y1) 为: 这是求多边形最简单直观的方法。可以直接利用离散数据点的x, y坐标就能求图形重心。但是缺陷在于没有对离散数据点所围图形做任何处理和分析,精度不够。1. 2 算法一:在讲该算法时,先要明白下面几个原创 2014-04-09 20:17:25 · 508 阅读 · 0 评论 -
hdu1220组合数学,求公共点小于2的面数对
CubeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1192 Accepted Submission(s): 938Problem DescriptionCowl is good at solvin原创 2014-02-16 09:39:27 · 545 阅读 · 0 评论 -
hdu【最长回文子串——Manacher算法】POJ 3974/HDU 3068
O(n)回文子串算法 这里,我介绍一下O(n)回文串处理的一种方法。Manacher算法.原文地址:http://zhuhongcheng.wordpress.com/2009/08/02/a-simple-linear-time-algorithm-for-finding-longest-palindrome-sub-string/ 其实原文说得是比较清楚的,只是英文原创 2013-08-22 14:11:46 · 612 阅读 · 0 评论 -
poj2034Anti-prime Sequences 打表+dfs
Anti-prime SequencesTime Limit: 3000MS Memory Limit: 30000KTotal Submissions: 2777 Accepted: 1284DescriptionGiven a sequence of consecutive integers n,n+1,n+2,...原创 2014-02-17 15:27:35 · 515 阅读 · 0 评论 -
筛选素数的几种方法
五、 朴素判断+筛法 通过上面的筛法实现可以看出,用筛法直接判断素数是很有限的,筛法受内存的限制,要判断n是否为素数,需要开大小为n的bool数组。当n很大的时候,显然是不可取的。所以我们可以折中以上两种算法,将朴素判断和筛法结合在一起,使得朴素判断能得到进一步的优化。方法二中朴素判断的优化已经大大降低了复杂度。其实我们再深入理解就会发现,其实从2到√原创 2014-02-17 16:57:21 · 620 阅读 · 0 评论 -
pku1365 Prime Land 小整数素数分解,基础题
Prime LandTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 2677 Accepted: 1269DescriptionEverybody in the Prime Land is using a prime base number syste原创 2014-02-17 13:15:21 · 683 阅读 · 0 评论 -
数论专题学习阶段总结
转载:http://www.cnblogs.com/kuangbin/archive/2012/08/28/2661066.html从放暑假前周sir给我讲了一个用polya计数法和burnside定理做的题目(pku2409)后,突然觉得组合数学挺有意思,然后从那时起到现在几乎都在做这类的题目。 做到现在感觉这类题目的一些基本知识点都差不多有所了解了,水原创 2013-08-23 17:33:02 · 1000 阅读 · 0 评论 -
hdu1098 数学归纳法简单应用
题目的关键是函数式f(x)=5*x^13+13*x^5+k*a*x;事实上,由于x取任何值都需要能被65整除.那么用数学归纳法.只需找到f(1)成立的a,并在假设f(x)成立的基础上,证明f(x+1)也成立.那么把f(x+1)展开,得到5*( ( 13 0 )x^13 + (13 1 ) x^12 ...... .....+(13 13) x^0)+13*( ( 5 0原创 2013-08-24 16:22:24 · 667 阅读 · 0 评论 -
POJ 2447 破解RSA(经典公钥算法)
周五刚好在俞研的网络安全课上学了RSA,回来想实现以下,由于以前数论方面的积累还算比较深厚,很快就过了这一题,呵呵:-)总结一下吧,这题可以说是数论部分的一个大综合题,因为它将算法导论上数论这部分的知识点全部包含了进来,包括gcd,扩展gcd,模线性方程,a^b mod c(还是比较难的那种,相关题目可以看一下FOZ上面的2道题),miller-rabin素数测试,pollard_rho质因数原创 2013-10-07 19:24:38 · 1408 阅读 · 0 评论 -
hdu2669 欧几里得水题
题解:显然是用扩展欧几里得定理求解。又扩展欧几里得定理有,如果a*x+b*y = d 要使得方程有解必有gcd(a,b)为d的约数。而此题的d = 1 所以若gcd(a,b)!=1,则应该输出sorry注意,输出的x应为最小的非负整数,这就需要用到x,y所有解的公式:x,y所有解:假设d=gcd(a,b). 那么x=x0+b/d*t; y=y0-a/d*t;其中t为任意常原创 2013-10-20 22:04:45 · 550 阅读 · 0 评论 -
输出1/n的小数位,是循环小数输出一个循环节
/*从这里充分体现了C++输入输出和C的输入输出在数大的时候速度快很多。*/#include#include#include#include#include#includeusing namespace std;const int LEN=100010;int main(){ int k, n, T, vis[LEN], digit[LEN]; cin原创 2013-10-22 22:25:44 · 1903 阅读 · 0 评论 -
进制转换方法神了
//方法一 用itoa函数#include//这函数太神了,进制转换直接秒过#include#include//貌似错了还是不能用?int main(){ __int64 n; while(scanf("%I64d",&n)!=EOF) { char a[100000]; printf("%s\n",itoa(n,a,2)); } return 0;原创 2013-11-03 20:23:20 · 505 阅读 · 0 评论 -
欧拉函数
欧拉函数的定义:E(k)=([1,n-1]中与n互质的整数个数). 因为任意正整数都可以唯一表示成如下形式: k=p1^a1*p2^a2*……*pi^ai;(即分解质因数形式) 可以推出:E(k)=(p1-1)(p2-1)……(pi-1)*(p1^(a1-1))(p2^(a2-1))……(pi^(ai-1))原创 2013-11-03 21:27:23 · 529 阅读 · 0 评论 -
hdu2588欧拉函数
思路:分析:假设x=m的p的欧拉函数值之和了。#includeusing namespace std;int Euler(int n){ int val=n, i; for (i=2; i*i<=n; i++) { if ( n%i==0 ) { val=val/i*(i-1);原创 2013-11-08 15:03:16 · 582 阅读 · 0 评论 -
N!最末非零位数值
给定一个数N(N 在N很小的情况下,有一个简便的方法:求出1到N之间每个数的2的因子数和5的因子数,记为F(2)和F(5),显然F(2) >= F(5)。由于在末尾只有2和5相乘才能产生0,如果我们把2和5抛去,那么肯定不会有0,这样就可以一边乘一边模10,防止溢出。剩下的一堆2和5如何处理呢?因为2肯定比5多,因此最末位肯定是偶数(0的阶乘和1的阶乘除外)。而一个偶数不停地乘2,最末位的规律原创 2013-11-10 02:22:18 · 890 阅读 · 0 评论 -
hdu4004 二分搜索
题意:一条线段长度为L,线段上有n个点,最多选取 m-1 个点,使得包括线段端点在内的相邻点之间的最大距离值最小。解题思路:首先,对于某个最大距离值 d ,如果 d 能满足要求,设 d' > d,那么 d' 也一定能满足要求。而问题的解就是那个满足要求的最小的 d 。那么,如何判断对于某个最大距离值 d 能否满足要求呢?由于最多选取 m-1 个点,所以当选的点超过这个数目的时候,不满足,另外,若两原创 2013-08-18 20:17:11 · 504 阅读 · 0 评论 -
poj2739
题意:就是求连续素数的和,每一个数能有多少种不同的连续素数组成。#include#includeusing namespace std;const int LEN=20010;int prime[LEN], isprime[LEN], ans[LEN];void Get_sum();void Get_prime(){ int i, j, k; for(i=0; i原创 2013-11-29 19:54:28 · 461 阅读 · 0 评论 -
poj3518靠一个数最近的两个素数的差
题意:题目意思就是一个数夹在两个连续的素数之间,算出这两个素数的差并输出;#includeusing namespace std;const int LEN=1399706;struct Prime{ int x, y;} isprime[LEN];void Get_prime(){ int i, j, k; for(i=0; i<=LEN; i+=2)原创 2013-11-29 20:43:08 · 598 阅读 · 0 评论 -
poj3126求一个素数到另一个素数每次变化一个数字的变化次数
#include#include#include#include#includeusing namespace std;#define CLR(arr, val) memset(arr, val, sizeof(arr))const int LEN=10010;int prime[LEN], isqueue[LEN], steps[LEN];int g, s, b, q;voi原创 2013-11-29 23:00:32 · 808 阅读 · 0 评论 -
NBUT 1481
题意问题描述F0=0, F1=1, F2=1, F3=2, F4=3, F5=5…… Fn = F(n-1) + F(n-2) ( n >= 2)输入输入一个整数n( 0 输出输出 Fn mod 20130719规律:#includeint f[1000000];int main(){ int a,b,c,i,j; f[0]=0; f[1]=1原创 2013-10-07 13:56:06 · 593 阅读 · 0 评论 -
poj2769之寻找最小完全剩余系
题目解析:该题所求即为寻找到最小的数 m 满足 m 模G个数两两不同余,即为找到最小的 m 使得这些数在 m 的最小完全剩余系中。#include#include#includeusing namespace std;#define LENN 1000010#define LENV 100001int num[LENN], vis[LENV];int main(int argc,原创 2013-12-11 20:22:17 · 1643 阅读 · 0 评论 -
hdu2197 本源串
分析:长度为n的本源串=2^n-长度为n的非本源串,对于长度为n的非本源串一定是由长度为m的串循环k次得到的,所以m一定是n的约数,所以只需要求到所有n的约数长度构成的本源串个数即可(不能求构成串之和,因为可能重复相加了,比如x是m的约数,则x一定是n的约数,则m的串包含x,只能m得本源串+x的本源串)所以n的本源串个数sum[n]=2^n-(sum[x1]+sum[x2]+....sum[m]+原创 2014-02-22 18:48:41 · 444 阅读 · 0 评论 -
hdu1222 约瑟夫环最大公约数
Problem DescriptionThere is a hill with n holes around. The holes are signed from 0 to n-1.A rabbit must hide in one of the holes. A wolf searches the rabbit in anticlockwise order. The fi原创 2014-02-14 20:15:08 · 577 阅读 · 0 评论 -
从1到n这n个数中1的出现次数
给定一个十进制整数N,求出从1到N的所有整数中出现"1"的个数。例如:N=2,1,2出现了1个"1"。N=12,1,2,3,4,5,6,7,8,9,10,11,12。出现了5个"1"。最直接的方法就是从1开始遍历到N,将其中每一个数中含有"1"的个数加起来,就得到了问题的解。[cpp] view plaincopyprint?原创 2013-10-22 17:22:36 · 795 阅读 · 0 评论