![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
b0ring
一个热爱技术的菜鸡,最近要开始静下心来沉淀了。由于升学原因从上海跑到成都去了。
我的github博客:https://blog.b0ring.cf/#/
ps:一般会优先更新github博客,因为可以一边写一边更,一般更好了才会传到csdn上,所以欢迎各位访问私人博客~也欢迎大佬们交换友链哦~
展开
-
POJ, 1811 Prime Test
题意:首先输入一个T,代表T组数据,然后输入T个n,判断n是不是素数,如果是素数,那就输出Prime,如果不是素数,就输出n的最小素数因子,n的范围是2到2^54。 思路:n的范围十分大,差不多1.8*10^16,肯定要用__int64存了,而且筛法根本无法解决,所以只能用素性检验和大素数分解来写了,关于这两个是有模板的:http://www.cnblogs.com/kuangbin/archi原创 2017-03-29 09:19:31 · 272 阅读 · 0 评论 -
UVA, 374 Big Mod
题意:R:=(B^p) mod M,现在给你B,p和m,求R。 思路:牵扯到指数,如果硬算肯定会越界,如果每次求指数之前先求余,那也会超时,P的极值是2^31,所以可以用二分来做,省时省力。 #include using namespace std; int B,P,M; long long slove(int B,int P,int M) { if(P==0) r原创 2017-05-08 18:49:38 · 271 阅读 · 0 评论 -
UVA,10765 Doves and bombs
题意:给你n个点,然后你要算出删除每个点后有多少个联通块,然后输出前m个,顺序是优先输出形成联通块多的,假如有数量相同,优先输出先输入的。 思路:参考了一下别人的思路,用tarjan时就可以求出联通块的数量。 #include #include #include using namespace std; #define MAX 5000 bool Map[MAX+10][MAX+10],原创 2017-05-08 18:34:05 · 339 阅读 · 0 评论 -
POJ,3177 Redundant Paths
题意:奶牛要在n个牧场中转移,奶牛们厌倦了只有一条路可以走,所以请你来加最少的路,让牧场之间不止有一条固定的通路。 思路:构造双连通图的问题,可以看下面的文章了解一下概念: https://www.byvoid.com/zhs/blog/biconnect #include #include #include using namespace std; #define MAX 50原创 2017-05-08 18:27:14 · 269 阅读 · 0 评论 -
POJ,3713 Transferring Sylla
题意:重新夺得Sylla之后,公司决定加强安保系统,就是建个运输网络,General要求这个网络必须满足每两个城市之间至少有三条独立的路线。(越看越像prison break)现在给你城市的坐标,让你判断合不合规定,复核规定就输出YES,不然就输出NO 思路:检查样例是不是三通路,其实就是把每个点去掉以后看看剩下的点有没有割点,如果有割点就是单通路,不符合规定,如果没有割点,就输是正确的。 #原创 2017-05-08 17:47:08 · 304 阅读 · 0 评论 -
UVA, 10090 Marbles
题意:现在有n个玻璃珠玻璃珠要存,你要买盒子,商店一共两种盒子,第一种:价格为c1,能存n1个、第二种:价格为c2,能存n2个。让你求出使两种盒子装满且花销最小的方法,如果装不满就输出failed 思路:码了半天思路发现越写越不清楚。。。总之有公式: m1的通解为m1=nx/g+n2*k/g m2的通解为m2=ny/g-n1*k/g 于是乎因为m1和m2都大于0,所以可以得到:-n*x/n原创 2017-05-08 03:50:29 · 400 阅读 · 0 评论 -
UVA, 10104 Euclid Problem
本来不写博客了,毕竟是业余的,而且博客里大佬这么多,后来突然发现之前学的东西忘记了看博客不仅能秒懂题意还能复习一下思路(毕竟是自己写的),就当重新学习一下吧,复习过程中的题目也写成博客好了。 题意:假设有这样的式子 AX+BY=D ,其中D是X和Y的最大公约数,现在请你求出X和Y。 思路:题目就是赤果果的欧几里得算法定义,直接套用扩展欧几里得的模板即可 #include using nam原创 2017-05-08 01:45:18 · 344 阅读 · 0 评论 -
UVA, 10990 Another New Function
题意:给一种深度欧拉函数,比如ϕ(13)=12,ϕ(12)=4,ϕ(4)=2,ϕ(2)=1,因为从13的欧拉函数到结果为1一共用了4步,所以depthphi[13]=4,现在让你求从m到n的depthnphi的和。 思路:这道题跟The Euler function这道题是连着的,思路差不多,先把2到200W的欧拉函数全求出来,然后再求2到200W的所有depthphi,然后从m加到n就行了。原创 2017-03-26 18:33:10 · 514 阅读 · 0 评论 -
HDU, 2824 The Euler function
题意:输入a,b 然后让你求从a到b的欧拉函数的和。 思路:利用筛法配合求欧拉函数的算法求从2到300W的欧拉函数,输入a和b后直接求和。 #include using namespace std; #define N 3000000 int phi[N+10]; void Euler() { for(int i=1;i<=N;i++) phi[i]=i; f原创 2017-03-26 18:19:16 · 230 阅读 · 0 评论 -
UVA, 11064 Number Theory
题意:GCD(m,n)是指n和m的最大公约数,现在给你个数n,找所有比n小的m,m满足GCD(m,n)!=1且GCD(m,n)!=m,就是让你找所有既不是因子也不是互质的数。比如6的因子是1,2,3,6 而且5又和6互质,所以只有4满足条件。 欧拉公式:假设p[t]为所有n的素数因子,φ(n)=n/p[1]*(p[1]-1)/p[2]*(p[2]-1).../p[t]*(p[t]-1)。原创 2017-03-24 14:28:12 · 318 阅读 · 0 评论 -
UVA, 10299 Relatives
题意:直接求输入数字n的欧拉函数。 欧拉函数定义:小于这个数并且与这个数互质的数的个数。 公式:假设p[t]为所有n的素数因子,φ(n)=n/p[1]*(p[1]-1)/p[2]*(p[2]-1).../p[t]*(p[t]-1)。 思路:最大值是10亿,10亿开平方根是3.16W多,保险点可以拿3.5W做为素数的上限,求3.5W以内的所有素数以后,然后从第一个判断是不是素数因子,然后除到没原创 2017-03-24 14:22:31 · 326 阅读 · 0 评论 -
HDU, 5447 Good Numbers
题意:假设有一个数K,如果有个小于等于K的数n和K的所有质因子相同,那么他们就是一对good numbers,现在给你K1和K2,他们的范围是1到10^24,让你求他们俩的各自的good number的个数。但是K1和K2存在一个非常有趣的关系,就是他们俩的最大质因子一定是相同的,两个第二大的质因子一定不同。 思路:(思路比较长,可以直接看代码)__int64的最大范围是2^64,大概也就是10原创 2017-03-30 19:26:29 · 679 阅读 · 0 评论 -
POJ, 2429 GCD & LCM Inverse
题意:假设有两个数a和b,现在给你a和b的最大公约数和最小公倍数,要你反推出a和b,如果有多组a和b就输出使a+b的值最小的一组 思路:既然给出最大公约数和最小公倍数,那么a和b的所有的素数因子就可以求得,然后用最小公倍数除最大公约数,就可以得到两者除除最小公倍数后的所有素数因子,然后用dfs就可以求得了,注意,所有相同的质因子必须合并:如给出最大公约数1和最小公倍数8,8除以1得到8,8分解后原创 2017-03-30 19:12:12 · 312 阅读 · 0 评论 -
HDU, 3864 D_num
题意:输入一个N,假设m和N的最大公约数为m,如果这样的m仅有4个,那么N就是D_num。如果是就输出除1以外的所有m,不是就输出"is not a D_num" 思路:首先1和N自己肯定能作为m了,所以只要其余的只有两个值不同的m就可以了,那么N的因素数就只有两种情况:两个素因数且不相等或者三个素因数且彼此相等。 大素数判断和分解模板:http://www.cnblogs.com/kuang原创 2017-03-29 09:30:16 · 351 阅读 · 0 评论 -
UVA, 756 Biorhythms
题意:某三个指标的峰值周期是23,28,33。现在给你三个指标的时间还有现在的时间,让你求距离下一次碰到三个峰值相同还有多少天。 思路:这道题应该是有很多方法的,用中国剩余定理做的话可以百度别人的,别人大部分应该都是用的中国剩余定理做,这里刚看到另外一种借同余式的算法,拿这道题练手~ 这种算法叫做除数相同法,有关算法的介绍可以看这里,在第四种算法里: http://blog.sina.com原创 2017-05-10 03:09:36 · 310 阅读 · 0 评论