摘要: http://duanple.blog.163.com/blog/static/709717672009049528185/历史上,Knuth在其<<Sorting and Searching>>一书的第6.2.1节指出:尽管第一个二分搜索算法于1946年就出现,然而第一个完全正确的二分搜索算法直到1962年才出现。而不经仔细斟酌而写出的一个二分查找经常遭遇off by one或者无限循环的错误。下面将讨论二分查找的理论基础,实现应用,及如何采用何种技术保证写出一个正确的二分程序,让我们免于思考麻烦的边界及结束判断问题。在c++的stl中有如下函数 lower_boun 阅读全文
posted @ 2011-08-25 21:10 追逐. 阅读(660) 评论(0) 推荐(0) 编辑
摘要: 快速排序qsort真的很强大一、对int类型数组排序 int num[100]; int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } qsort(num,100,sizeof(num[0]),cmp);二、对char类型数组排序(同int类型) char word[100]; int cmp( const void *a , const void *b ) { return *(char *)a - *(int *)b; } qsort(word,100,sizeof(... 阅读全文
posted @ 2011-08-25 19:51 追逐. 阅读(296) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2293 啥也不说了,一个简单的模拟让我弄成这样。 注意两个地方: 1. 最后不能用时间递增来模拟过程,要先求出每人hp<=0的时间,通过对比时间来决定胜负,否则会超时。 2. 过程中的取模要放到循环中,每次的相乘都取模,否则会乘法溢出。代码:#include<iostream>#include<cstdio>#include<cstring>usingnamespacestd;intmain(){intn;cin>>n;inthp1,hp2,st1,st2 阅读全文
posted @ 2011-08-25 10:28 追逐. 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 题意: 给定一个圆台的上底半径,下底半径和高,给出一定体积的水,求这些水在圆台内的体积。 简单的二分法逼近求高,过程中因为忘记了怎么求小圆台的上底半径而超时了几次。TLE代码:#include<iostream>#include<cstdio>#include<math.h>usingnamespacestd;doubleh=0,h1,r1,r2,r3,r;voidf1(){h1/=2;h+=h1;r3=r;r=(r+r2)/2;}voidf2(){h1/=2;h-=h1;r=(r+r3)/2;}intmain(){doublev1,v2;intm;doub 阅读全文
posted @ 2011-08-25 09:42 追逐. 阅读(250) 评论(0) 推荐(0) 编辑