上一页 1 2 3 4 5 6 7 8 ··· 27 下一页
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2201题目描述现在有一架飞机要起飞,乘客们正准备按机票号码(1,2,3...,N)一次排队登机。突然来了一只大猩猩(金刚)。他也有机票,但是他插队第一个登上了飞机,然后随意的选择了一个座位坐下了。根据社会的和谐程度,其他的乘客有两种反应:1.乘客们都义愤填膺,“既然金刚同志都不守规矩,为什么我要遵守?”他们也随意的找位置坐下,并且坚决不让座位给其他乘客。2.乘客们虽然感到愤怒,但是还是以“和谐”为重,如果自己的位置没有被占领,就赶紧坐下,如果自己的位置已经被别人(或者金刚同志)占了,就随机的选择另一个位置坐下 阅读全文
posted @ 2013-08-22 23:38 执着追求的IT小小鸟 阅读(250) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2100直接模拟#include#includeint main(){ char a[220],b[220]; int i,j,ans[440],lena,lenb; while(scanf("%s %s",a,b)!=EOF) { lena=strlen(a)-1; lenb=strlen(b)-1; for(i=0;i=0) ans[i]+=a[lena--]-'A'; if(lenb>=0) ... 阅读全文
posted @ 2013-08-22 21:55 执着追求的IT小小鸟 阅读(165) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2151简单dp,动态转移方程:dp[N][T]=dp[N-1][T-1]+dp[N-1][T+1],注意判断边界是否存在#include#includeint main(){ int N,P,M,T,i,j; int dp[110][110]; while(scanf("%d%d%d%d",&N,&P,&M,&T)!=EOF) { memset(dp,0,sizeof(dp)); dp[0][P]=1; for(i=1;i0) ... 阅读全文
posted @ 2013-08-22 21:20 执着追求的IT小小鸟 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 手搓//快速排序void quick_sort(int s[], int l, int r){ if (l = x) // 从右向左找第一个小于x的数 j--; if(i x > pb->x) return 1; else if (pa->x x) return -1; else return 0;}int cmpy(const void *a, const void *b){ int *pa = (int *) a; int *pb = (in... 阅读全文
posted @ 2013-08-22 20:17 执着追求的IT小小鸟 阅读(212) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1007这题需要注意的有两点:一:题目本身,做的思路是分治,像快速排序那样,把所有的点分成差不多的两段,然后再分……直至只剩2个或三个,那样就可以直接算了。算法流程:1:进入递归过程:如果是该段点数不大于三,那么就可以直接算了,否则用分治法递归解决2:将大于四的这堆点分成两部分,得到最小的距离d。但这个距离还不能确定是最小的min,因为有可能一点p在左边,一点q在右边,而他们的距离有可能比d还小,是真正的min3:将这堆实现按x排好序的点分成两部分,左边标志L,右边标志R,两个值不同。遍历左边的,找到所有距离中 阅读全文
posted @ 2013-08-22 20:11 执着追求的IT小小鸟 阅读(217) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1348这题是在求凸包的基础上,再求每个顶点对应角度及半径的弧长,外面围墙的直线部分与城墙的凸包长相同;再求弧长总和,注意每段弧长对应的角与凸包顶点的夹角是一样的,所以,又因为每个顶对应的半径长都是l,所以一个多边形的所顶点对应弧长相加其实就是一个圆。所以,最后总长为 凸包边长+2*3.141592653*l(l为已知与城堡的最远距离)#include#include#define PI 3.141592653struct node{ double x,y;}p[11000];int hash[11000];. 阅读全文
posted @ 2013-08-21 17:13 执着追求的IT小小鸟 阅读(243) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1392这题是凸包的模板题目……看算法后纯原创+_+思路:1:在输入的时候就保留住最下面而又靠左的点,这点为起点p0;设置hash表为是否访问过该点,因为结束标志是找到下一个顶点为p0,所以初始化时不可以将p0点赋为已经访问做n个循环,pi保留下一个要开始求凸包边的点2:循环从P0开始,设置点Pj也是p0,然后3:将j从0开始,找到所以的未访问的点,依次和pi,pj进行叉乘,(j-pi)×(pj-pi),大于0时j在pj顺时针方向,小于0就在逆时针方向。等于0时则共线,返回距离较远的那个点,结果保留在 阅读全文
posted @ 2013-08-21 11:38 执着追求的IT小小鸟 阅读(249) 评论(9) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1431先判断回文,用时较少,再判断素数。最重要的。。。9989899这个数以上都是合数,擦----#include#include#includeint sushu(int a){ int i,j; for(i=2;i*ib)temp=a,a=b,b=temp; for(;a<=b&&a<=9989899;a++) { if(huiwen(a)&&sushu(a)) printf("%d\n",a); } printf("\... 阅读全文
posted @ 2013-08-20 23:32 执着追求的IT小小鸟 阅读(148) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2108这题是用矢量相乘来判断拐向的,三个点a,b,c,矢量叉乘(b-a)×(c-b)为正就左拐,否则右拐,出现右拐就是凹的#include#includeint x[1000000],y[1000000],n;int con(int a,int b,int c){ int s,x1,x2,y1,y2; x1=x[b]-x[a]; y1=y[b]-y[a]; x2=x[c]-x[b]; y2=y[c]-y[b]; s=x1*y2-y1*x2; return s>0;}i... 阅读全文
posted @ 2013-08-20 23:00 执着追求的IT小小鸟 阅读(184) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2857这题是求关于已知前后光路上的两点,和镜面位置,求出反射点的位置。这里需要有1:两点求直线方程,即得到直线的三系数已知x1,x2,y1,y2,则a=y2-y1;b=x1-x2;c=x2*y1-x1*y2;2:已知两直线,求交点struct line{ double a,b,c;}p,s;void jiaodian(){ if(fabs(p.b)#includestruct line{ double a,b,c;}p,s;double x3, y3, x2, y2, x, ... 阅读全文
posted @ 2013-08-20 22:28 执着追求的IT小小鸟 阅读(274) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 27 下一页