ACM_math
文章平均质量分 72
tintinsnowy
这个作者很懒,什么都没留下…
展开
-
使用快速傅里叶变换计算大整数乘法
来源:http://www.cnblogs.com/skyivben/archive/2008/07/23/1248413.html我们知道,两个 N 位数字的整数的乘法,如果使用常规的算法,时间复杂度是 O(N2)。然而,使用快速傅里叶变换,时间复杂度可以降低到 O(N logN loglogN)。假设我们要计算以下两个 N 位数字的乘积:a = (aN-1aN-2…a1a0)10 = aN-1x转载 2016-03-08 20:48:02 · 4968 阅读 · 0 评论 -
Uva 861 (little bishop)搜索,棋盘多项式,dp
items links:点击打开链接原创 2014-04-18 10:20:57 · 878 阅读 · 0 评论 -
【北师校赛】B 数细菌
题目链接:bnu题目分析:一般的数学吧,签到题目,注意输出10位小数,lz就是因为用cout 用线段图分析吧,一般将细菌分为两个阶段 初生态(设为a),和分裂态 (设为A) 在任意一时态都存在至少有2个态,我们分别设个数为 x个和 y 个 a = x + y;原创 2014-05-03 21:07:26 · 707 阅读 · 0 评论 -
hdu 1005(找规律--循环节)
题目链接:点击打开链接题目大意:A number sequence is defined as follows:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.Given A, B, and n, you are to calculate the value of f(n).题目分析:一般原创 2014-04-01 21:53:36 · 765 阅读 · 0 评论 -
HDU 2256(矩阵快速幂)
题目链接:题目分析:之前用库函数 fmod(x,mod),然后就wa,毕竟用double来取膜的确是不可能的然后参考大神的代码过了。#include#include#includeusing namespace std;const int N=2;const int MOD=1024;struct Matrix{ int mat[N][N];转载 2014-03-20 22:03:02 · 613 阅读 · 0 评论 -
HDU 1249 三角形(递推)
题目链接:点击打开链接题目分析:ACM中数学类题目,要么是结论性的,要么就是递推,所以先画几个图形看看 n=1 ----------> face =2; n=2 -----------> face =8; n=3 -----------> face =20;每条边最多与原创 2014-03-31 21:00:54 · 653 阅读 · 0 评论 -
POJ FIBONACCI (3070)
正常解法是用矩阵快速幂.但是,只是#include#include#include#include #define maxn 3000using namespace std;//计算阶乘int a[150000];void pow(){ a[0]=0,a[1]=1; for(int i=2;i<150000;i++) a[i]=(a[i原创 2014-03-18 22:11:53 · 558 阅读 · 0 评论 -
hdu 1222 (数论+递推)
题目链接:点击打开链接题目分析:一开始以为只要n%m就可以但是明显错误 m=6,n=8;仍然可以,顿悟如果mn有公约数,那么在循环过程中距离差距会是固定的,但是如果差距不固定(公约数为1)那么不行。 貌似hdu上 %lld->%I64d long long->__int64 #include#include#include#原创 2014-03-27 21:37:08 · 616 阅读 · 0 评论 -
HDU 1395(快速幂模板)
#include #include #include #include #include using namespace std;typedef long long ll;ll pow(ll a,ll b,ll r){ ll ans=1,buff=a; while(b) { if(b&1) ans = (ans*buff)%r;原创 2014-03-16 11:03:56 · 629 阅读 · 0 评论 -
HDU1018 (最小公倍数)
#include #include #include #include #include using namespace std;int gcd(int n,int m){ return m==0 ? n:gcd(m,n%m);}int lcm(int n,int m){ if(n<m) swap(n,m); return n/gcd(n,m)原创 2014-03-16 10:35:18 · 737 阅读 · 0 评论 -
【UVAlive】康托展开的思想
题目链接:点击打开链接题目分析:d s原创 2014-05-03 21:34:14 · 594 阅读 · 0 评论 -
HDU 1013(数学?数串)
题目地址: #include#include#include#include#include#includeusing namespace std;int main(){ char m[1000],len,ans; while(scanf("%s",m)!=EOF) { len=strlen(m);原创 2014-04-03 21:41:16 · 582 阅读 · 0 评论 -
利用不均匀硬币产生等概率
利用不均匀硬币产生等概率 Part 7 of 15 in the series 常见面试算法题问题描述:有一枚不均匀的硬币,已知抛出此硬币后,正面向上的概率为p(0 )。请利用这枚硬币产生出概率相等的两个事件。这个问题跟之前的利用等概率Rand5产生等概率Rand3非常像,但却简单的多。几个月前还为这个事情头疼了一下,现在想来真是不应该。某一次抛出硬币,正面向上的概率是p,转载 2014-07-04 21:50:02 · 6013 阅读 · 0 评论 -
ZOJ 3768(暴搜+数学)
题目链接:点击打开链接题目d原创 2014-04-10 19:38:52 · 764 阅读 · 0 评论 -
FZU A-B problem
DescriptionFat brother and Maze are playing a kind of special (hentai) game by two integers A and B. First Fat brother write an integer A on a white paper and then Maze start to change this intege原创 2014-05-08 19:44:27 · 645 阅读 · 0 评论 -
JAVA大数类练手
JAVA大数类练手链接:今天突然看到了OJ上的大数类题目,由于学习了一点大数类的知识。果断水了6道题。。。。。。都是非常基础的。就当的练手的吧。学到的只是一些大数类的基本操作。以后多做点这样的题,争取熟练运用水大数题。。。大数阶乘题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=28代码如下:转载 2014-04-07 21:23:42 · 527 阅读 · 0 评论 -
【ACM_数论初步】欧几里德算法及其应用
资料有维基百科提供:http://zh.wikipedia.org/wiki/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97%E7%AE%97%E6%B3%95原创 2014-04-21 12:09:19 · 773 阅读 · 0 评论 -
HDU-1002 A + B Problem II Java大数
A + B Problem IITime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 123322 Accepted Submission(s): 23706Problem DescriptionI have原创 2014-04-07 21:43:26 · 617 阅读 · 0 评论 -
【ACM_数论初步】欧拉函数
定义:欧拉函数PHI(n)表示的是比n小,并且与n互质的正整数的个数(包括1)原创 2014-04-21 21:37:10 · 786 阅读 · 1 评论 -
【转】【关于 A^x = A^(x % Phi(C) + Phi(C)) (mod C) 的若干证明】【指数循环节】
附上地址点击打开链接【关于 A^x = A^(x % Phi(C) + Phi(C)) (mod C) 的若干证明】【指数循环节】以下内容全部原创,转载请注明作者 : AekdyCoin 以及本文地址曾经看过如下一个公式:以上的公式如果第一次见到,难免有不少疑惑:为什么可以这么写?限制条件为什么是x >= Phi(C),这个公式为什么正确?今天突转载 2013-08-23 09:32:57 · 913 阅读 · 0 评论 -
hdu 4278(Faulty Odometer)
题目链接:点击打开链接题目分析:昨天队里用的模拟方法= =,不过看board,有人一分中秒杀,后来才发现是poj 2719改编 特殊的八进制代码:#include#include#includeusing namespace std;typedef long long __int64;__int64 ans;char dat原创 2013-09-02 10:12:03 · 790 阅读 · 0 评论 -
hdu 2674(想法+数学)
这题要计算的是N!%2009,0思路:从1开始累乘,直到乘到因子为N为止,并且在相乘过程中,每相乘一次都mod2009,这样做和把所有1---N因子都乘完后再mod2009结果是一样的。原因在于每个数都能分为除以2009后的商部分和余数部分。用这个数乘以n,和用这个数除以2009的商乘以n以及余数乘以n,效果完全一样。商乘以n的部分任然是下一个数商部分;而余数乘以n的部分如果大于200原创 2014-04-03 21:55:54 · 731 阅读 · 0 评论 -
hdu 4405 Aeroplane chess(概率dp1)
题目链接点击打开链接题目大意:如同飞行棋的玩法,问到达终点的期望步数题目分析:终于明白为什么要由后往前写了= =,如果没有飞行机会那么进行1~6的推算dp【i】=dp【i+j】/6详见代码~~#include#include#include#include#includeusing namespace std;double dp[100010];int f原创 2013-09-07 13:49:24 · 778 阅读 · 0 评论 -
Efficient way to multiply with 7(快速乘以7)
# includeint multiplyBySeven(int n){ /* Note the inner bracket here. This is needed because precedence of '-' operator is higher than '<<' */ return ((n<<3) - n);}/* Driver转载 2014-03-12 21:53:43 · 617 阅读 · 0 评论 -
Write an Efficient Method to Check if a Number is Multiple of 3(快速判断3的倍数)
The very first solution that comes to our mind is the one that we learned in school. If sum of digits in a number is multiple of 3 then number is multiple of 3 e.g., for 612 sum of digits is 9 so it’s原创 2014-03-12 21:37:07 · 811 阅读 · 0 评论 -
UVA 152 Tree's a Crowd (简单计算)
本来以为有高明的剪枝,结果……所以暴力就行#include #include #include #include #define sqr(x) ((x)*(x))typedef struct _Point { double x, y, z;}Point;int cmp(const void *_a, const void *_b) { Point*原创 2013-11-01 22:02:04 · 742 阅读 · 0 评论 -
poj 1702(Eva's Balance)
题目链接:点击打开链接题目大意:有些3的幂的重量的砝码,现在给定任意一质量的重物,现在要求怎么样放置才能平衡题目分析:将重物转化为三进制(0,1,2),先要分成3的幂,所以见2 就要想办法变为1,见1如果有前面的进位,那么也要进行进位。 最终得到的没有2的数则为右边的重量,左边的所需要的则是刚才调整时用到的重量由于是自己做法,有点搓欢迎斧原创 2013-10-22 15:21:18 · 827 阅读 · 0 评论 -
zoj 3702 Gibonacci number
题目链接:点击打开链接题目大意:在斐波那切数列的原始定义上多了,f[1]为不确定,求问给一个f【i】和i 求f【j】?题目分析:初始想用打表的方式,结果没T却ML了= =,回头想想,这样一定是有规律的,所以分析如下 i: 0 1 2 3 4 5 6原创 2013-10-20 11:31:22 · 871 阅读 · 0 评论 -
hdu 4466 Triangle
题目链接:点击打开链接题目大意:将长度为n的截为1.全部全等的三角形2.都是完整的。问不同的方法有多少种题目分析:参考大神的方法:推荐->点击打开链接 首先我们考虑周长为m的三角形有多少个我们假设 a这里分为两种情况 b=c那么对于c的上界,c最大取floor((x-1)/2),因为a最少为1对于c的下界,c最原创 2013-09-20 20:02:06 · 604 阅读 · 0 评论 -
hdu 2136(Largest prime factor)
题目链接:点击打开链接题目分析:利用素数打表题目总结:又是受到了筛选发的影响,直接打i*i#include#include#includeusing namespace std;int num[1000005];void init(){ memset(num,0,sizeof(num)); int c=1; for(int i=2;i<100原创 2013-09-13 20:55:05 · 658 阅读 · 0 评论 -
hdu 1716(排列2)
题目链接:点击打开链接题目分析:类同白书p116先贴下不可重复的排列如下:#include#include#include#include#includeint i,data[4],len=0,j;void print_permutation(int n,int *a,int cur)//利用递归的思想{ int i,j; if(cur==n)原创 2013-09-14 10:00:40 · 769 阅读 · 0 评论 -
hdu 4627 The Unsolvable Problem
题目链接:点击打开链接题目大意:给予n,找到a+b =n,并且a,b最小公倍数尽量大题目分析:从中间向向两边找。若n为奇数,n/2和n/2+1;若为偶数,分为两种情况:1.如果n/2为奇数,则n/2+2和n/2-2,如果n/2为偶数则n/2-1和n/2+1注意边界就行了#include#include#include#includeusing namespace原创 2013-09-14 09:27:10 · 878 阅读 · 0 评论 -
poj 1001 (Exponentiation) 高精度乘法
题目链接:点击打开链接题目大意:求一个有理数的n次方题目分析:这么大的数就是高精度乘法,然后有些具体的要求。用数组的方法。题目总结:具体看下discuss里面的数据很不错。#include#include#include#include#include#define maxn 20000using namespace std;int n,dot,len原创 2013-09-13 20:28:18 · 934 阅读 · 0 评论 -
hdu 1695(GCD) 容斥+欧拉函数
题目链接:点击打开链接题目大意:在a~b中找x,c~d中找y。x,y的GCD为k的对数题目分析:【1】由于xy的最大公约数为k,那么除去x,y其他因数必然互质,问题转化为在b/k和d/k中找x,y互质的对数,这是一一对应的关系 【2】规定b 【3】明显在小范围(1~b)就使用欧拉函数:欧拉函数是少于或等原创 2013-09-10 10:30:45 · 899 阅读 · 0 评论 -
hdu 4715(Difference Between Primes)
题目链接:点击打开链接题目大意:give you an even , you should output the difference of 2 primes题目分析:even though it says if you cannot find the 2 primes you may printf(" fail") yet,if you t原创 2013-09-08 18:53:42 · 1233 阅读 · 0 评论 -
UVA 10110(数论)
题目分析:称不上什么数论,但是动下脑筋就行,如果含平方的数,那么他的因子个数为奇数,否则为偶#include #include #include #include #include using namespace std;int main(){ //freopen("in.txt","r",stdin); long long n; wh原创 2013-11-02 12:13:37 · 841 阅读 · 0 评论 -
UVA 11879 multiple 17(大数取模)
题目:就是判断这个数是否为17的倍数题目总结:对取模运算有多了一层印象#include#include#include#include#includeusing namespace std;int main(){ string str; int i,ans; while(getline(cin,str)&&str[0]!='0') {原创 2013-11-26 09:33:31 · 849 阅读 · 0 评论 -
Codeforces Round #230 (Div. 2) C (Div. 1)
C. Blocked Pointstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputImagine you have an infinite 2D plane wit转载 2014-02-19 16:02:52 · 655 阅读 · 0 评论 -
Codeforces Round #230 (Div. 2) problem A(小算数)
题目链接:点击打开链接题目分析:求一串字符中nineteen的个数注意:n,i,t,e的数量关系#include#include#include#include#includeusing namespace std;char str[105];int length;int find (char c)//统计字符c出现的次数{ int count=0;原创 2014-02-19 15:05:19 · 622 阅读 · 0 评论 -
codeforces #230 (Div. 2) B(简单数学)
题目链接:点击打开链接题目大意:a+b矩阵成为w,a为对称矩阵,b为关于主对角线互为相反数题目分析:一来想到的是枚举法……会T,所以仔细一想 x+y=a; x-y=b; 求解x,y吗#include#include#include#include#includedouble a[200][200],b[200][200],w[20原创 2014-02-19 15:02:01 · 916 阅读 · 0 评论