zoj1360||poj1328
2012-04-30 10:40
363 查看
程序没有大概,目标是完全理解某一种算法,比如这道题的快排算法,继续努力吧
#include<stdio.h> #include<string.h> #include<math.h> #include<stdlib.h> int n,d; double pl[1005],pr[1005]; void kp(int L,int R) { double m1=pl[L+R>>1],m2=pr[L+R>>1]; int i=L,j=R; double key; while(i<j) { while(pr[i]<m2) i++; while(pr[j]>m2) j--; if(i<=j) { key=pr[i]; pr[i]=pr[j]; pr[j]=key; key=pl[i]; pl[i]=pl[j]; pl[j]=key; ++i;j--; } } if(i<R) kp(i,R); if(j>L) kp(L,j); } int main() { int x,y; double temp; int i; int flag; int count; int count_n=0; double place; while(scanf("%d%d",&n,&d)==2) { if(n==0&&d==0) break; count=0; flag=0; count_n++; memset(pl,0,sizeof(pl)); memset(pr,0,sizeof(pr)); for(i=1;i<=n;i++) { scanf("%d%d",&x,&y); if(y>d) { flag=1; } temp=d*d-y*y; temp=sqrt(temp); pl[i]=x-temp; pr[i]=x+temp; } if(flag) { printf("Case %d: -1\n",count_n); } else { while(n) { kp(1,n); place=pr[1]; for(i=1;i<=n;) { if(pl[i]<=place&&pr[i]>=place) { pl[i]=pl ; pr[i]=pr ; n--; } else i++; } count++; } printf("Case %d: %d\n",count_n,count); } } return 0; }
相关文章推荐
- poj 1328 Radar Installation 【贪心】
- POJ-1328-Radar Installation-2013-12-07 01:49:28
- poj 1328 Radar Installation (贪心)
- POJ-1328 Radar Installation-贪心算法
- POJ-1328
- poj1328 递归+区间覆盖问题
- Radar Installation(POJ 1328 区间贪心)
- poj 1328 Radar Installation
- poj 1328 Radar Installation(贪心)
- poj 1328 Radar Installation (简单的贪心)
- POJ 1328 Radar Installation(贪心)
- poj 1328 Radar Installation
- poj 1328 Radar Installation
- Radar Installation(POJ-1328)
- POJ 1328 Radar Installation
- 【贪心专题】POJ 1328 G - Radar Installation (区间覆盖)
- poj 1328 Radar Installation
- POJ 1328 -Radar Installation
- poj 1328 Radar Installation(贪心算法)
- POJ 1328 Radar Installation(雷达安装)__贪心