随笔分类 -  数学#题解

摘要:1.POJ 1150 The Last Non-zero Digit #质因数分解+模运算分治# 先贴两份题解: http://www.hankcs.com/program/algorithm/poj-1150-the-last-non-zero-digit.html http://www.cppblog.com/abilitytao/archive/2009/10/31/99907.html 下... 阅读全文
posted @ 2016-05-26 17:34 &ATM 阅读(201) 评论(0) 推荐(0)
摘要:#include #include #include #include #include #include using namespace std; const static int M = 50; int numA[M]; int numB[M]; //使用string重置numA void resetNumA(string numAStr) { memset(numA,0,M... 阅读全文
posted @ 2016-04-28 08:55 &ATM 阅读(182) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=2413 #include #include #include using namespace std; //到第485个fib数才有100位 const int LAST=108; char res[500][110]; //存储fib数 char *pos[500]; //存储每个fib数的首地址 char* Addition(char *... 阅读全文
posted @ 2016-03-19 14:21 &ATM 阅读(351) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=2773 说实话这道题。。一点都不Happy好吗 似乎还可以用欧拉函数来解这道题,但正好刚学了容斥原理和二分,就用这个解法吧。 题解:要求输出[1,m]中与m互质的第k个数,先打表,找到m的所有质因数,然后用二分实现,最开始区间为[1,2^60],利用容斥原理去找区间[1,mid]内素数的个数t,不断进行二分,直到所查找的区间[l,r]内素数的个... 阅读全文
posted @ 2016-03-18 21:07 &ATM 阅读(310) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2461 题目很简单,但是由于询问数M可以很大,所以容易超时,这道题学到了在结构体里面写函数的方法,这样子效率更高,否则的话,这道题就TLE了。 根据容斥原理,先把每个小长方形的面积加上,然后看有没有与该小长方形相交的,用dfs实现,当相交面积为0时,则不进行dfs,且同样遵循奇加偶减(但代码里因为是以第二个作... 阅读全文
posted @ 2016-03-18 20:54 &ATM 阅读(283) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1695 翻译题目:给五个数a,b,c,d,k,其中恒a=c=1,x∈[a,b],y∈[c,d],求有多少组(x,y)满足GCD(x,y)=k? //(x,y)和(y,x)视作同一个 题解:既然是要x,y的最大公约数为k,那说明x/k和y/k是互质的,只需在[1,b/k]和[1,d/k]范围内找到适合的x,y即可... 阅读全文
posted @ 2016-03-18 20:52 &ATM 阅读(225) 评论(0) 推荐(0)
摘要:以下三道都是经典二分,道理都差不多,代码就贴在一起了。 POJ 3122 POJ 3258 POJ 3273 POJ 3122: #include #include #include #include using namespace std; #define PI 3.14159265359 //ÓÃ3.1415926»áWA¡£¡£¡£ double pie[10005]; i... 阅读全文
posted @ 2016-03-18 03:04 &ATM 阅读(264) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=1905 题意:将一条直线变成一条弧线(该弧线是圆的一部分),求中心位置发生的位移。 由于精度需要控制好,所以选择用圆半径作为二分的目标,l=0,r=INF,LL为弧线长度,根据半径mid以及弦长L,可以求出对应的弧线长度t=2*asin(0.5*L/mid)*mid,再与LL比较,若t #include #include u... 阅读全文
posted @ 2016-03-18 02:59 &ATM 阅读(223) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=1845 关于质因数分解,模板见:http://www.cnblogs.com/atmacmer/p/5285810.html 二分法思想:选定一个要进行比较的目标,在区间[l,r]之间不断二分,直到取到与目标相等的值。 #include #include #include using namespace std; typedef lo... 阅读全文
posted @ 2016-03-18 02:52 &ATM 阅读(284) 评论(0) 推荐(0)
摘要:矩阵快速幂:http://www.cnblogs.com/atmacmer/p/5184736.html 题目链接 #include #include using namespace std; typedef long long ll; #define MOD 10000 ll a[7],b[7],a0[7],b0[7]; void pow_mod(ll n) { a0[1]=a0... 阅读全文
posted @ 2016-03-17 00:39 &ATM 阅读(288) 评论(0) 推荐(0)
摘要:寒假做的题了,先贴那时写的代码。 POJ 1061 #include #include typedef long long LL; using namespace std; void extend_gcd(LL a,LL b,LL &d,LL &x,LL &y) { if(b==0) { d=a; x=1,y=0; } else... 阅读全文
posted @ 2016-03-17 00:34 &ATM 阅读(182) 评论(0) 推荐(0)
摘要:欧拉函数总结+证明 欧拉函数总结2 POJ 1284 原根 #include #include #include #include #include using namespace std; int Euler(int n) { int res=n; for(int i=2;i*i1) res-=(res/n); return res; } int ... 阅读全文
posted @ 2016-03-17 00:29 &ATM 阅读(543) 评论(0) 推荐(0)
摘要:素数判定Miller_Rabin算法详解: http://blog.csdn.net/maxichu/article/details/45458569 大数因数分解Pollard_rho算法详解: http://blog.csdn.net/maxichu/article/details/45459533 然后是参考了kuangbin的模板: http://www.cnblogs.com/kuang... 阅读全文
posted @ 2016-03-11 00:05 &ATM 阅读(508) 评论(0) 推荐(0)
摘要:找素数本来是很简单的问题,但当数据变大时,用朴素思想来找素数想必是会超时的,所以用素数筛法。 素数筛法 打表伪代码(用prime数组保存区间内的所有素数): void isPrime() vis[]数组清零;//vis[]数组用于标记是否已被检验过 prime[]数组全赋初值false;//prime[]数组从下标0... 阅读全文
posted @ 2016-03-10 23:51 &ATM 阅读(407) 评论(0) 推荐(0)
摘要:(~ ̄▽ ̄)~* 这道题涉及高精度除法,模板如下: char s[1005]; char division[1005];//存储进行高精度除法的数据 bool bignum_div(int x) { int tot=0,num=0; for(int i=0;s[i];i++) { num=num*10+s[i]-'0'; division... 阅读全文
posted @ 2016-02-28 16:03 &ATM 阅读(250) 评论(0) 推荐(0)

……