数学题
ehi11
这个作者很懒,什么都没留下…
展开
-
Incomplete chess boards 有趣.
/*代码超短.思路很有意思.想象成一个国际象棋的棋盘,黑白相间且颜色个数相同.一张牌可以覆盖两个格子.所以只要两个格子是一黑一白就必定有解.此时满足条件如下.*/ #include int main(){ int n,i=1,x1,y1,x2,y2; scanf("%d",&n); while(n--) {原创 2012-08-05 16:26:15 · 497 阅读 · 0 评论 -
Fibonacci hdu 1568
#include #include #include #include #define c (sqrt(5.0)+1.0)/2.0using namespace std;int main(){ int f[40]; f[0]=0; f[1]=1; for(int i=2; i<=20; i++) f[i]=f[i-1]+f[i-2];原创 2013-02-27 11:03:14 · 592 阅读 · 0 评论 -
简单计算求组合数 Binomial Showdown
#include int main(){ double n,k; while(scanf("%lf%lf",&n,&k)==2) { if(n==0&&k==0) break; double ans=1; if(2*k>n) k=n-k;//注意优化 while(k>=1)//分子是n*n-1*...*n-原创 2013-01-23 19:16:12 · 1048 阅读 · 0 评论 -
Crazy Tea Party hoj poj 数学题
/*首先考虑一个没有成环的序列,从1 2 3 4 ... n 转移成 n ... 3 2 1的状态需要 n*(n-1)/2.即可以这样考虑,把1转移到最后端需要相邻调换n-1次,再把2转移到1右端需要n-2次。一次类推,总次数为1+2+3+...+n-1=n*(n-1)/2.现在再考虑成环的情况,即可以在中间选一个点,将环拆成两条链,自然是取中点,即N/2,*/#include int原创 2012-09-18 23:05:00 · 637 阅读 · 0 评论 -
Factorial hoj poj
/*怎么说呢。看了两份报告,算是规律吧。10可以分解成2*5,也就是说N!末尾有多少个0就可以分解成多少个5.。特别的,25可以分解成两个5,125可以分解成3个5.所以写法如下。*/#include int main(){ int t,n; scanf("%d",&t); while(t--) { scanf("%d",&n);原创 2012-09-18 22:52:09 · 585 阅读 · 0 评论 -
Uniform Generator 数学题
/*这种题写过两次。第一次周赛的第一道就是他。就是给两个数,a,b.amodb的结果,再mod b,如果所有的余数能把0--mod-1内的所有数都填满。则符合条件。这样只需要判断a b 互质即可。*/#include int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}int main(){ int a,b; whi原创 2012-09-05 16:20:14 · 889 阅读 · 0 评论 -
Factoring Large Numbers
/*一个数必定可以分解成一些素因子的乘积。从2开始,没扫面到一个能被n整除的数。就进行n/=i,否则,i++,如果遇到i*i>n,则此时的n必是最后一个素因子。输出。结束。*/#include int main(){ long long n; while(scanf("%lld",&n)==1) { if(n==-1) break;原创 2012-09-05 15:43:59 · 656 阅读 · 0 评论 -
Factstone Benchmark hoj 数学题
/*题意是求满足n!<2^bit的最大n。只能题意太特么晦涩了。然后可以转化一下。1*2*3...*n<2*2*2...*2.则循环2^bit次。n=(2^bit)/(n-1)!。每步运算的时候,满足sum>k,就k++,将sum/=k。*/#include #include #include int main(){ int n; while(scanf("%d",原创 2012-09-04 22:38:02 · 655 阅读 · 0 评论 -
Power of Cryptography 数学题 注意double能表示的最大范围
/*整型 int -2*10^9 ~ 2*10^9单精度型 float -3.4*10^38 ~ 3.4*10^38双精度型 double -1.7*10^308 ~ 1.7*10^308*/#include #include int main(){ double n,x; while (scanf("%l原创 2012-09-04 22:33:47 · 674 阅读 · 0 评论 -
Billiard hoj poj 数学题 挺好的
/*题意是给一张台球桌。一个球从台球桌中心发出。给出桌子的长宽(a,b)。和在长边和宽边上碰撞的次数(m,n),球回到起点的时间。求球运动的速度和出发时和水平方向的角度。这是一种对称行的问题。b*n/2为竖直方向上运动的竖直总路程。a*m/2为水平方向的。因为水平碰撞2次,必定走了一段竖直距离。二者之比为角度的正切。注意角度和弧度的转化。而总路程还要除以相应的正弦和原创 2012-09-04 22:31:10 · 883 阅读 · 0 评论 -
hoj Count on Canton
/*y一道纯数学题。判断奇偶即可。水~*/#include int main(){ int n,k; long long s; while(scanf("%d",&n)==1) { s=0; k=1; for(;;) { s+=k原创 2012-06-23 23:14:01 · 546 阅读 · 0 评论 -
Gridland 数学题 hoj
/*当m*n都为奇数的时候,结果为m*n+0.41,否则为m*n.*/#include int main(){ int t,m,n,i=1; scanf("%d",&t); for(int p=0; p<t; p++) { scanf("%d%d",&m,&n); printf("Scenario #%d:\n原创 2012-07-21 15:09:08 · 489 阅读 · 0 评论 -
Myacm Triangles hoj,poj,uva 计算几何
123原创 2012-09-05 07:22:20 · 670 阅读 · 0 评论