随笔分类 -  hodj acm

摘要:#include<stdio.h>intf[15];booljos(int,int);intmain(){inti,j,k,m,n;for(i=1;i<14;i++)for(j=i;;j++)if(jos(i,j)){f[i]=j;break;}while(scanf("%d",&n),n)printf("%d\n",f[n]);return0;}booljos(intn,intm)//n代表每一边的人数,m代表所报的数{intstart=0,end=n-1,killed;inti,j;boolflag=true;for(i=2 阅读全文
posted @ 2011-05-08 14:56 yansirfuture 阅读(658) 评论(0) 推荐(0) 编辑
摘要:先看对数的性质,loga(b^c)=c*loga(b),loga(b*c)=loga(b)+loga(c);假设给出一个数10234432,那么log10(10234432)=log10(1.0234432*10^7)=log10(1.0234432)+7;log10(1.0234432)就是log10(10234432)的小数部分.log10(1.0234432)=0.01006374410^0.010063744=1.023443198那么要取几位就很明显了吧~先取对数(对10取),然后得到结果的小数部分bit,pow(10.0,bit)以后如果答案还是<1000那么就一直乘10。注 阅读全文
posted @ 2011-05-08 14:26 yansirfuture 阅读(216) 评论(0) 推荐(0) 编辑
摘要:给大家提供一个资料http://zhidao.baidu.com/question/15843599.html众所周知,有限小数是十进分数的另一种表现形式,因此,任何一个有限小数都可以直接写成十分之几、百分之几、千分之几……的数。那么无限小数能否化成分数?首先我们要明确,无限小数可按照小数部分是否循环分成两类:无限循环小数和无限不循环小数。无限不循环小数不能化分数,这在中学将会得到详尽的解释;无限循环小数是可以化成分数的。那么,无限循环小数又是如何化分数的呢?由于它的小数部分位数是无限的,显然不可能写成十分之几、百分之几、千分之几……的数。其实,循环小数化分数难就难在无限的小数位数。所以我就. 阅读全文
posted @ 2011-05-08 13:41 yansirfuture 阅读(195) 评论(0) 推荐(0) 编辑
摘要:我和这题有缘吗?知道三个点了 就可以求出直线和抛物线的方程然后就是非常简单的二重积分求面积 ^_^用抛物线的顶点公式y=a(x-x1)^2+y1外加另一个点x2算出a,然后对抛物线公式求积分,用积分的公式算出抛物线和x轴的面积,减去梯形的面积就行。#include"stdio.h"intmain(){intn,i;doublee,f,g,h,l,r,a,b,c,k,m,area;scanf("%d",&n);for(i=0;i<n;i++){scanf("%lf%lf",&e,&f);scanf(&quo 阅读全文
posted @ 2011-05-08 13:36 yansirfuture 阅读(121) 评论(0) 推荐(0) 编辑
摘要:这个题目的思路,是这样的我们假设数字A是这样的一个数字 a*(10^(k+1)) + b*(10^k) + c 其中 a 为任意数字,b为去掉的那一位数字,范围 [0,9] 的整数,c<10^k 。则去掉b后的数字B为 a*(10^k) + c ,而A+B的值可以用一下式子表示 (11*a+b)*(10^k) + 2*c 这个值等于 n , 我们枚举 k的值,从0到10 ,对于取定的k值,显然有一下对应 2*c = n%(10^k) 或者 2*c = n%(10^k) + 10^k ; 可以求出整数c的值,然后枚举 b的值,来确定a的值,使得a的值为整数 /..计算中可能会出现重复的结果 阅读全文
posted @ 2011-05-08 13:31 yansirfuture 阅读(373) 评论(0) 推荐(0) 编辑
摘要:题目的大意是将一个数分解成素数的乘积。求最大的那个素数在素数表中的位置。与 FZU.1012(http://acm.fzu.edu.cn/problem.php?pid=1012)这一题分解素数的方法与原理相似。用prime[i]来存放i这个数字分解后最大素数的位置。2是素数,所以prime[2]=1;再先将所有2的倍数的prime[]都更新为1.即prime(4,6,8,10)都为1.又因为6又是3的倍数,3是更大的素数,所以将prime[6]更新为3.依此类推……1#include<stdio.h>2#defineN10000013intprime[N];4intmain()5 阅读全文
posted @ 2011-05-08 12:52 yansirfuture 阅读(314) 评论(0) 推荐(0) 编辑
摘要:数学太差,转的。。题目意思很清楚,不用多说,公式是 p+q-gcd(p,q)举个例子:4 6,用一个矩形来切割,如下图蓝色点线表示4等分线 红色实线表示6等分线,让蛋糕(矩形)可以平分为4份需要(4刀)和6份需要(6刀),总共需要10刀,但因为其中有两条线是重合的,没有必要切两次,所以应该减掉这两刀,就只剩下10-2=8刀了。对于任何p和q,他们重合的线的数量就是他们的GCD,所以就~~~~1#include<iostream>23usingnamespacestd;45intgcd(inta,intb){6returnb?gcd(b,a%b):a;7}8intmain(){9in 阅读全文
posted @ 2011-05-08 10:43 yansirfuture 阅读(320) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1713输入 a/b c/d转换后变成:(a*d)/(b*d) 和 (c*b)/(b*d)按照题意,就是在转相同的圈子(b*d圈)时,各自需要时间a*d和c*b.所以,这里把a*b与c*b的最小公倍数求出来就可以了。这样。求出的最小公倍数lcm再除以(b*d)就是所求的周期。(http://www.wutianqi.com/)但是,这里要求若无法整出,则写出分数形式,这时,就可以求lcm与(b*d)的最大公约数gcd,求出gcd后与(b*d)比较,若相等,则证明可以整除~~~~1#include<cstd 阅读全文
posted @ 2011-05-08 10:15 yansirfuture 阅读(543) 评论(2) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2093#include<cstdio>#include<cstdlib>#include<cstring>#defineMAX1000typedefstruct{charname[11];intsum;inttotal;}credit;intcmp(constvoid*a,constvoid*b){if((*(credit*)a).total!=(*(credit*)b).total)return(*(credit*)a).total-(*(credit*)b).total 阅读全文
posted @ 2011-05-07 22:51 yansirfuture 阅读(226) 评论(0) 推荐(0) 编辑
摘要:先对田忌和国王的马进行排序,我是从大到小排序的。 贪心的策略: 一、当田忌最快的马比国王最快的马快时,用田忌最快的马赢国王最快的马。 二、当田忌最快的马比国王最快的马慢时,用田忌最慢的马输给国王最快的马。三、当田忌最快的马跟国王最快的马一样快时,分情况。 证明一、:假设现在国王最快的马是K,田忌最快的马是T,如果存在一种更优的比赛策略,让T的对手不是K,而使得田忌赢更多的钱的话,那么设此时K的对手是t,T的对手是k:( T>K &&T>t && K>k)1、 若t>K,则有T>k,t>K。这个结果和T>K,t>k是 阅读全文
posted @ 2011-05-07 19:48 yansirfuture 阅读(3205) 评论(3) 推荐(2) 编辑
摘要:最近杭电的数据很阴险了,FatMouse' Trade,没过的同学测这组数据:03100010001000Answer300.0001#include<iostream>2#include<algorithm>3#include<stdio.h>4usingnamespacestd;5structnode6{7intj,f;8doublea;9};1011nodetest[1005];12boolcomp(nodea1,nodea2)13{14if(a1.a!=a2.a)15returna1.a>a2.a;16else17return0;18} 阅读全文
posted @ 2011-05-07 14:22 yansirfuture 阅读(191) 评论(0) 推荐(0) 编辑
摘要:这几天做ACM Step,比较不错,在做一道题的时候,我用的是string,函数用的是strncmp,说参数不匹配,看了看函数原型,参数是const char *,而我用的是string,需要转换一下:http://acm.hdu.edu.cn/showproblem.php?pid=2629#include<iostream>usingnamespacestd;intmain(){intn,i,temp;chars[50];stringregional[8]={"Zhejiang","Beijing","Taiwan", 阅读全文
posted @ 2011-05-07 11:52 yansirfuture 阅读(384) 评论(0) 推荐(0) 编辑
摘要:今天准女友关了一天的手机,不知道她怎么了,万一出事怎么办呀,为了减轻思念之苦,只好再次ac求数列:1,1+2,1+2+3,…,1+2+3+…+n,…的前n项之和an=(n^2+n)/2Sn=∑n^2/2+∑n/2这是道公式题呀,可是他做wa,我做超时,哎郁闷!我用上面公式做的,他用下面公式做的n(1+n)(2+n)/6 阅读全文
posted @ 2009-05-27 21:42 yansirfuture 阅读(128) 评论(0) 推荐(0) 编辑
摘要:这是我在hdoj看到最难的并查集的题,k表示当前方块的四个方向 k=0,1,2,3分别是右,下,上,左。0,1表示有连和无连。用temp记录周围的方块。 阅读全文
posted @ 2009-05-15 21:01 yansirfuture 阅读(152) 评论(0) 推荐(0) 编辑
摘要:其实只要把它化解为取(N堆)石子问题的博弈就可以在十分钟之内解出来把每行黑白棋位的差看成是一堆石子,这样就根本不用去分析下一步怎么走了用取(N堆)石子博弈的XOR算法套上便可得解[代码] 阅读全文
posted @ 2009-05-15 16:08 yansirfuture 阅读(154) 评论(0) 推荐(0) 编辑
摘要:i是增量,每一个数n都可以表示成0+n……(1),和n个1相加……(2)先看n=3,c1[0] = c1[1] = c2[2] = c2[3] = 1 ,他们表示n个1相加, c1[0]表示0和n相加都等于n只有一种情况i=2,j=0,k=0,c2[0] = 1,0只有一种情况,就是0本身 j=0,k=2,c2[2] = 1,//0+n …... 阅读全文
posted @ 2009-05-15 13:38 yansirfuture 阅读(202) 评论(0) 推荐(0) 编辑
摘要:这道题原来多列举一些数就能找到规律了。 阅读全文
posted @ 2009-05-15 06:42 yansirfuture 阅读(125) 评论(0) 推荐(0) 编辑
摘要:例题:HDOJ 1792 A New Change Problem题意:给定A和B,A和B互质,求最大不能组合数,和不能组合数的个数。基础知识:Gcd(A, B) = 1 → Lcm(A, B) = AB剩余类,把所有整数划分成m个等价类,每个等价类由相互同余的整数组成任何数分成m个剩余类,分别为 mk,mk+1,mk+2,……,mk+(m-1)分别记为{0(m... 阅读全文
posted @ 2009-05-14 17:04 yansirfuture 阅读(447) 评论(0) 推荐(0) 编辑
摘要:hdoj有很多这样的题,寒假时做得很多。http://baike.baidu.com/view/668994.htm 阅读全文
posted @ 2009-05-14 15:58 yansirfuture 阅读(153) 评论(0) 推荐(0) 编辑
摘要:[代码] 阅读全文
posted @ 2009-05-14 15:51 yansirfuture 阅读(105) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示