![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数学
文章平均质量分 57
pmt123456
这个作者很懒,什么都没留下…
展开
-
hdu1163
题目链接:Eddy's digital Roots给出一个数n,求n^n的数根,数根即各位数字之和,如66-->6+6=12-->1+2=3,则66的树根是3。纯数学解法:九余数定理:这个数字根等于原数除以9的余数,如66%9=3n^n直接计算可能溢出,(a*b)%c=((a%c)*(b%c))%c#include #include using namespace原创 2016-12-08 21:07:23 · 316 阅读 · 0 评论 -
hdu1164(素数筛选)
题目链接:Eddy's research 将一个数分成几个质数的乘积1.素数筛选法void init(){ memset(vis,0,sizeof(vis)); int m=sqrt(maxn+0.5); for(int i=2;i<=m;i++){ for(int j=i*i;j<=maxn;j+=i){ vi原创 2016-12-08 21:10:28 · 329 阅读 · 0 评论 -
hdu1178(简单公式)
题目链接:Heritage from father计算#include #include #include #include #include using namespace std;int main(){ //freopen("in.txt","r",stdin); double n; while(scanf("%lf",原创 2016-12-08 21:45:20 · 299 阅读 · 0 评论 -
hdu1204(Markov过程,赌徒输光问题变形)
题目链接:糖果大战回到本题:本题是赌徒问题的变形,增加了平局的情况,设f(i)是从状态i出发到达n+m状态先于到达0状态的概率考虑从i出发后移动一步后的情况,以概率p(1-q)移动到j+1的假设下,到达n+m的概率为f(i+1)同理,以概率q(1-p)移动到j-1的前提下,到达n+m的概率是f(i-1)如果两人是平局,以概率1-p(1-q原创 2016-12-09 20:04:34 · 5849 阅读 · 1 评论 -
hdu1286(筛选法找约数/欧拉函数)
题目链接:找新朋友题目大意:找出小于等于n且与n互质的数方法一:欧拉函数:讲解时间复杂度:O(sqrt(n))模板:int eular(int n){ int ret=n; for(int i=2;i*i<=n;i++){ if(n%i==0){ ret=ret-ret/i; whil原创 2017-01-14 08:59:50 · 457 阅读 · 0 评论 -
hdu1394(暴力/线段树/归并排序求逆序对的个数)
题目链接:Minimum Inversion Number题目大意原创 2017-02-18 00:08:15 · 1185 阅读 · 0 评论 -
hdu 1059最小公倍数模板
题目链接 点击打开链接#include #includeusing namespace std;int gca(int a,int b){ if(a<b){ int t=a; a=b; b=t; } while(b!=0){ int c=a%b; a=b; b=c;原创 2017-02-28 14:17:13 · 303 阅读 · 0 评论 -
hdu 1005
此类题首先考虑找一般规律,即循环节、打表二是数论 如卡特兰数等。。。对于公式 f[n] = A * f[n-1] + B * f[n-2]; 后者只有7 * 7 = 49 种可能,为什么这么说,因为对于f[n-1] 或者 f[n-2] 的取值只有 0,1,2,3,4,5,6 这7个数,A,B又是固定的,所以就只有49种可能值了。注意f[0]的处理,循环节从1到[i-2],即原创 2016-09-17 23:55:52 · 335 阅读 · 0 评论 -
hdu1211(模的逆元、扩展欧几里得)
eg:解二元不定方程ax+by+c=01)当a=0或b=0时,方程的解确定2)c不是gcd的倍数时,方程无解故只考虑ab!=0且c|gcd(a,b)的情况1、扩展欧几里得算法 找出一对整数(x,y),使得ax+by=gcd(a,b)。 例如,gcd(6,15)=3,6*3-15*1=3,其中x=3,y=-1。 这个方程还有其他解,如x=-2,y=1。原创 2016-12-13 11:13:06 · 793 阅读 · 0 评论 -
hdu1098(数学归纳法)
题目链接Ignatius's puzzle对f(x)=5*x^13+13*x^5+k*a*x输入一个k,找出最小的a使得对任意x都满足,f(x)%65=0假设f(x)=5*x^13+13*x^5+k*a*x满足上述条件证明f(x+1)也满足所以只要求(18+ka)%65是否为0#include #include using namespace std原创 2016-12-05 18:58:02 · 322 阅读 · 0 评论 -
hdu1061 快速幂取模
对于x^13#include #includeusing namespace std;int mod_pow(int a,int b,int c){ int t=a%c,ans=1%c; while(b){ if(b&1){ ans=ans*t%c; b--; }原创 2016-11-17 09:51:33 · 354 阅读 · 0 评论 -
hdu1060 幂的最左数字
对于对他取对数可以得到则x是我们要求得数字,那么我们只需要求就可以了#include #include #include using namespace std;int main(){ //freopen("in.txt","r",stdin); int T,N,ans; scanf("%d",&T); while(T原创 2016-11-17 10:02:34 · 326 阅读 · 0 评论 -
hdu1222(扩展欧几里得)
题目链接:Wolf and Rabbit题目大意:n个洞逆时针方向,狼每走一步要垮n个洞,即0,n,2n...这样走,循环走,如果总有洞是走不到的输出YES,反之输出NO。分析:假设狼一共走了x步,那么狼所在洞的编号为k=(x*m)%n (1)如果所有的洞都能走到,那么k可以取遍0,1,2,...,n-1(1)式等价于xm-ny=k (2原创 2016-12-16 16:17:33 · 587 阅读 · 0 评论