自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 hdu2068 错排+组合

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2068题意:有n个人,野骆驼(人名)只要认识一半以上就可以了。请问有多上组答案能使他过关。思路:必须认识一半以上,也就是说他最多有一半个不认识的。所以是0~n/2的每一个错排产生的答案都满足题意。选取i(i=0,1,2,……,n/2)个人进行错排,由乘法原理可知产生的答案组数为:C_n_

2013-08-13 09:19:33 684

原创 hdu1009 FatMouse' Trade

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1009题目大意:老鼠想要用n个猫粮在m个房间中换取自己想要的食物。在第i个房间中用f[i]个猫粮可换取j[i]个食物,要求用n个猫粮在这m个房间中换取最多的食物。解题思路:每个房间都有一个兑换率j[i]/f[i],将所有的房间按兑换率从大到小排序,最后在从前往后兑换,直到n个猫粮用完。代码如

2013-08-05 17:33:07 544

原创 hdu1086计算n条线段的交点个数

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1086题目大意:有n条线段,请输出交点的个数。如果有多条线段相交一点,你应当重复计数。(由示例可以看出,交点为一条线断的端点的非规范相交也符合题意)解题思路:本题不需要用向量做,太麻烦了。直接用高中解析几何知识做,如果两点在直线两侧,带入直线方程,所得结果异号。即相互跨过,特殊情况(交点为其中一

2013-08-05 10:20:14 2217

原创 hdu2049 错排+组合问题

原题链接:click here题目大意:有n个新郎,其中有m个新郎找错了新娘,求发生这种情况有多少种可能。解题思路:(1)从n个新郎里选择m个,总共有C(n,m)种选法。(2)让m个新郎去错排,利用错排公式求出错排数a[m]。(3)根据分步乘法原理可知,这种情况发生共有C(n,m)*a[m]种可能。代码如下:#includeint main(){ int t

2013-08-04 00:25:20 601

原创 hdu2048 错排+排列问题

原题链接:click here这是一个错排加古典概率的题目。题目大意:有n个人抽签,签上写着每个人的名字。所有的人都抽错的概率。解题思路:首先,所有的人都抽错是n个数的错排数,由错排公式:a[i]=(i-1)*(a[i-1]+a[i-2])可以求得。总共的抽签数,可以由n个数的全排列数求得。即:n!概率p=a[n]/n!代码如下:#includeint main()

2013-08-03 23:33:57 630

原创 hud1071 The area

原题链接:click here题目大意:一个二次曲线与直线相交,交点已知。求它们围成的封闭区域的面积。思路:利用交点求出曲线和和直线参数,得到曲线和直线方程,再利用定积分求面积。设二次曲线方程为:y=a*X^2+b*x+c;(1)x1=-b/2a;(2)(对称轴方程)所以b=-2a*x1;(3)将p1(x1,y1),p2(x2,y2)代入(1)式后再把(2)式代入整

2013-08-03 12:22:51 599

原创 hdu2036 求多边形面积

原题链接:click here已知多边形的n个顶点坐标求其面积。可以选其任意一顶点与其他的顶点连线,把多边形分割成很多的小三角形。在计算几何中我们知道,三角形面积可以用其边向量的叉乘来求,向量的叉乘即是它们坐标的行列式。将这个行列式展开就可以得到以三角行顶点坐标为参数的面积公式。将所有的小三角形面积都用顶点坐标的行列式表示,再展开。最后把所有小三角形面积相加即是多边形的面积。此时可以的到以多边

2013-08-03 11:37:04 614

原创 hdu2037 今年暑假不ac

原文链接:click here贪心算法就可以解决了。去掉尽可能少的区间,使剩下的区间各不相交即可满足题意。将区间末端按从小到大排序,排好后从第一个区间开始向后操作,若后一个区间的始端点大于等于前一个区间的末端点则两区间不相交,计数一次,并标记当前满足条件区间的末端点,下一个区间的起始端再与这个标记的末端点比较,满足则计数,并且更新标记。如此循环,直到比较完数据。代码如下:#incl

2013-08-03 10:44:51 730

原创 hdu1556 Color the ball

原题链接:click here这以题既可以用树状数组来做,也可以用线段树来做,可惜我还没掌握线段树,等以后掌握了再补充下。代码如下:#includeint n;int tree[100005];int lowbit(int i){return i&(-i);}void update(int i,int j){while(i{tree[i]+=

2013-07-30 17:04:12 505

原创 hdu1164

原文链接:click here这是一题分解素数的水题,用欧拉函数就可以做出来。代码如下:/*利用欧拉函数把一个数进行素数分解*/#includeint main(){int i,j,l,n,a[1000];while(scanf("%d",&n)!=EOF){for(j=0,i=2;i*i{if(n%i==0){n=n/i;a[j++]=i;

2013-07-30 10:26:41 490

原创 HDU1213

原题链接:click here这是一题并查集的水题,是我第一次用并查集做出来的题目。请各位原谅我吧,让我小小的yy下。没什么可说的,直接贴代码:#include#define MAX 1001int father[MAX];/*初始化数组*/void make_set(int n){int i;for(i=1;ifather[i]=i;}/*查找

2013-07-25 16:54:13 440

转载 错排的递推公式及推导

错排递推公式:f(n)=(n-1)*(f(n-2)+f(n-1));颜书先生《“装错信封问题”的数学模型与求解》一文(见《数学通报》 2000 年第 6 期 p.35 ),给出了该经典问题的一个模型和求解公式:编号为 1 , 2 ,……, n 的 n 个元素排成一列,若每个元素所处位置的序号都与它的编号不同,则称这个排列为 n 个不同元素的一个错排。记 n 个不同元素的错排总数

2013-07-23 11:15:57 822

原创 hdu2114 Calculate S(n)

原题链接:click here本题是一题数学水题,就是公式的推导麻烦点,还有个大数的取模运算。已知:S(n)=13+23 +33 +......+n3 .输入个n对应的输出s(n)的后四位数,如果不足四位前面补零(用输出格式控制即可)。推导过程如下:1):a=1+2+3+4+……+n           2a=(1+n)+(2+n-1)+(3+n-2)+……+(n+1)(倒序相

2013-07-22 10:56:45 680

原创 杭电1098题

原题链接:click here本题一开始做脑子里什么五花八门的东西都出来了,一句话没头绪。后来静下心来想一想,貌似高中的多项式整除某个数,求参数。于是乎联想到了数学归纳法。已知:f(x)=5*x^13+13*x^5+k*a*x,当给定k的值后,多项式中只有一个参数a了。对于任意的x都有65|f(x),求满足条件的a的最小值。如果找不到则输出no.数学归纳法:(1):当x=t时满足6

2013-07-21 22:41:39 647

原创 已三个点坐标,判断能否构成三角形。若能,则求三角形外接圆的圆心和半径

解:#include#includeint main(){       double  x1,x2,x3,y1,y2,y3,p1,p2,q1,q2,k1,k2,x,y,r,a,b,c,d;       int  i,j,k,l;       while(scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3)!=EOF)

2013-07-13 23:34:06 4271

原创 树状数组

昨天学了一下树状数组,学的晕晕的,今天又看了一遍。希望勤能补拙吧,呵呵。如果给定一个数组,要你求里面所有数的和,一般都会想到累加。但是当那个数组很大的时候,累加就显得太耗时了,时间复杂度为O(n),并且采用累加的方法还有一个局限,那就是,当修改掉数组中的元素后,仍然要你求数组中某段元素的和,就显得麻烦了。所以我们就要用到树状数组,他的时间复杂度为O(lgn),相比之下就快得多。下面就讲

2013-07-13 09:35:25 478

原创 汉诺塔V

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1782    Accepted Submission(s): 1067Problem Description用1,2,...,n表示n个盘子,称为1号盘,2号盘,...。

2013-07-13 09:06:24 529

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除