![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM 数学题
文章平均质量分 51
穿袜子的流氓兔
这个作者很懒,什么都没留下…
展开
-
hdu1221
求矩形和圆是否相交或相切。#include #include #define judge(x,y) x<y||fabs(x-y)<0.00000001double dis(int x,int y,int a,int b){ return (x-a)*(x-a)+(y-b)*(y-b);}int main(){ int T; scanf(原创 2014-04-29 20:10:40 · 1544 阅读 · 0 评论 -
hdu1152
题意很简单,给你奇数个点,中间一个点为中心点,也可以说是原点,这样,就有了四个象限,左上,右下象限的点的个数为O的得分,右上,左下象限的点的个数为S的得分,最后输出得分就可以了。连排序都不需要。。。 #include#includeusing namespace std;int main(){ int i,n,point[200005][2]; whil原创 2014-04-25 16:19:11 · 554 阅读 · 0 评论 -
hdu1143
3*N 的矩阵可以由 1*2 的小矩阵组成,问你有多少种情况。首先来讲,如果n为奇数,必然无解。 当n为偶数时,一个比较直观的思路就是把大矩形用竖线切出左边一部分,然后递归求解,就像UVA_10359那样,直接考虑最左边一个小矩形是如何构成的我们就可以递归得到f(n)递推式。 虽然这个题目乍看上去小矩形似乎拼法比较多,而且要拼出一个不能再用竖线切分的小矩形似乎拼的方法也并不直原创 2014-04-24 22:36:16 · 1377 阅读 · 1 评论 -
hdu1164
水题,因式分解#include #include int num=0;int prime[10000];int judge(int n){ int i; for(i=2; i<=sqrt((double)n)+0.5; i++) if(n%i==0)return 0; return 1;}void init(){原创 2014-04-27 14:11:28 · 635 阅读 · 0 评论 -
!hdu1163(求数根)
首先说一下什么是数根原创 2014-04-27 13:53:31 · 778 阅读 · 0 评论 -
hdu1211
RSA is one of the most powerful methods to encrypt data. The RSA algorithm is described as follow:> choose two large prime integer p, q> calculate n = p × q, calculate F(n) = (p - 1) × (q - 1)原创 2014-04-27 16:55:07 · 763 阅读 · 0 评论 -
hdu1155
这题的意思是给你一根绳子,可收缩,告诉你跳下时候的高度,看会不会安全到地上,或是被吊在空中,或是被摔死。原创 2014-04-27 13:08:40 · 617 阅读 · 0 评论 -
hdu1178
求1,3,6,10,15,21,28……(n*())原创 2014-04-27 14:54:24 · 653 阅读 · 0 评论 -
hdu1102
prim算法的模板题。唯一区别就是对已经存在的路,路径长度设为0。#include #include #include #define MAX 0x3f3f3f3fusing namespace std;int n,m,vis[105],low[105],dis[105][105];int prim(){ int i,ans=0,pos=1; m原创 2014-04-24 15:31:42 · 908 阅读 · 0 评论 -
hdu1210
Eddy是个ACMer,他不仅喜欢做ACM题,而且对于纸牌也有一定的研究,他在无聊时研究发现,如果他有2N张牌,编号为1,2,3..n,n+1,..2n。这也是最初的牌的顺序。通过一次洗牌可以把牌的序列变为n+1,1,n+2,2,n+3,3,n+4,4..2n,n。那么可以证明,对于任意自然数N,都可以在经过M次洗牌后第一次重新得到初始的顺序。编程对于小于100000的自然数N,求出M的值。原创 2014-04-27 15:59:48 · 753 阅读 · 0 评论 -
hdu1115(求多边形重心模板)
求多边形重心模板!!!原创 2014-04-24 17:21:33 · 614 阅读 · 0 评论 -
hdu1141
//求n! < 2^m最大的n,其中m为计算机位数。//两边对数:log(1) + log(2) +...+ log(n) < m* log(2)。#include #include int main(){ int t, n, i; double r; while (~scanf("%d", &t), t) { n = (t - 1960) / 10 +原创 2014-04-24 21:00:53 · 770 阅读 · 0 评论 -
hdu1124
题目让你求N! 末尾有几个0.可以原创 2014-04-24 16:03:29 · 596 阅读 · 0 评论 -
hdu1223
n个数,只能用F[i][j]=(F[i-1][j]+F[i-1][j-1])*jF[i][j]代表i个数,有j个不同值的情况。比如A大数模板#include #include const int MAX =505;struct BigNum{ int num[MAX]; int len;} a[51][51];BigNum Add(原创 2014-05-06 16:42:55 · 2243 阅读 · 0 评论 -
hdu1222
思路:m和n如果有公约数,则安全洞存在,无公约数或公约数为1,则无 #include int gcd(int a,int b){ if(b==0)return a; else { int r; while(b!=0) { r=a%b; a=b;原创 2014-05-06 15:24:09 · 983 阅读 · 0 评论 -
hdu1261
题意:一个A和两个B一共可以组成三种字符串:"ABB","BAB","BBA".给定若干字母和它们相应的个数,计算一共可以组成多少个不同的字符串. 思路:(a1+a2+ ... +an)! / a1! / a2! / ... / an! 大数 #include #include const int MAX =5原创 2014-05-06 17:16:21 · 1213 阅读 · 0 评论 -
hdu1099
#include #include long long gcd(long long a,long long b){ if(b==0) return a; return gcd(b,a%b);}int leng(long long x){ int num=0; while(x!=0) { x原创 2014-04-22 21:28:53 · 871 阅读 · 0 评论 -
hdu1006
给你一个角度,求时钟三条原创 2014-04-22 15:47:55 · 870 阅读 · 0 评论 -
hdu1060
求N^N的最左一位数字。N*lg(N)=原创 2014-04-22 17:49:16 · 988 阅读 · 0 评论 -
hdu1066
求N!的非零末尾位(吉大ACM模板)#include #include #define MAXN 10000int lastdigit(char* buf){ const int mod[20]={1,1,2,6,4,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2}; int len=strlen(buf),a[MAXN],i,c,ret=1;原创 2014-04-22 19:45:12 · 1276 阅读 · 0 评论 -
hdu1100
给你二叉树树的标号,画出这颗二叉树。如2号树应该画成x(x)思想:dfs(m,n)表示m个节点的第n棵树。然后递归下去做。直到dfs(1,1),直接输出X #include #include #include using namespace std;int ct[19]= {1,1,2,5,14,42,132,429,1430,4862,16796,58786,20原创 2014-04-24 14:09:32 · 1149 阅读 · 0 评论 -
hdu1110
判断后面的矩形(x,y)能否放入前面的矩形(a,b)。#include #include #include using namespace std;double a,b,x,y;bool judge(){ if(a*b<=x*y)return false; if(a>x&&b>y)return true; if(b<=y)return fa原创 2014-04-24 15:01:19 · 1233 阅读 · 0 评论 -
hdu1214
居然没有想出来,唉。归正传。这题就是在求一串数在每次只能对调相邻两位时,要得到其逆序最少要移动多少次。在直线上移动很简单,类似于冒泡排序的方法,一个数不断向上冒,直到最终位置。不难得到其需要移动的次数公式为n*(n-1)/2。其中n为总点数。那么在圆环上移动又会如何呢?应该会不一样这是我们直观的感受。事实也是如此,移动的过程是将圆环分为两段,分别移动。那么又在何处分段呢?答案是尽量原创 2014-04-27 18:28:07 · 1067 阅读 · 0 评论