随笔分类 -  math

zjut1613反素数
摘要:View Code #include<iostream>#include<algorithm>using namespace std;int maxn,ans;int p[]={2,3,5,7,11,13,17,19,23};int n;void DFS(int cnt,int num,int pi,int lim){ if(num>maxn){maxn=num,ans=cnt;} else if(num==maxn&&cnt<ans)ans=cnt; int P=p[pi]; for(int i=1;i<=lim;i++,P*=p[p 阅读全文
posted @ 2011-11-13 12:04 4.5.6 阅读(243) 评论(0) 推荐(0)
hdu4014Discount
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4104View Code /*hdu4014Discount给出N的数字 求不能由这个N个数字组合出的最小的数思路:首先思考:怎样给出N个数字 使可以组合出最多的连续的数字1 2 4 8 16...2^n联想 二进制 上面的数可以组合出1~2^(n+1)内的任何数上面的情况已经是最稀疏的数字给出了,a1,a2..aM若密一些,则一定表示出sum[M]内的数字归纳法:a[M+1]=m,则可以表示的数字 增加了[sum[M]+(m-sum[M)] , sum[M]+m],所以 m<=sum[M]+1;*/# 阅读全文
posted @ 2011-11-09 14:51 4.5.6 阅读(235) 评论(1) 推荐(0)
hdu4043FXTZ II(大数+数学)
摘要:/*hdu4043FXTZ II(引用)题意:A、B两人初始血量相同,有n个技能,伤害分别为^i(i=,,,…,n-1),每随机(机会均等)选择一个技能随机(机会均等)打向A或B,直到技能用完,每个技能只被选择一次,且每次攻击后A的血量只要有一次超过B的血量,则A赢B输,问B赢的概率是多少。要求用最简分数表示。思路:当n=1时,p1 = 1/2当n=2时,第一个技能伤害如果是,只要第一个打出的技能打向A,则B必胜,这个事件发生的概率为/2 * 1/2;第一个如果是,那么只有两技能都打向A,B才能胜,事件发生的概率为/2 * 1/2 * 1/2;.则p2 =1/4 + 1/8 = 3/8当n=3 阅读全文
posted @ 2011-10-28 23:36 4.5.6 阅读(176) 评论(0) 推荐(0)