POJ1328
来源:互联网 发布:安卓转码软件 编辑:程序博客网 时间:2024/05/16 12:36
#include<stdio.h>#include<math.h>#define scale 1000#define bool int#define true 1#define false 0void qsort(double s[],double s1[], int l, int r){ int i, j; double x,y; if (l < r) { i = l; j = r; x = s[i];y= s1[i]; while (i < j) { while(i < j && s[j] > x) j--; /* 从右向左找第一个小于x的数 */ if(i < j) {s[i] = s[j];s1[i] = s1[j];i++;} while(i < j && s[i] < x) i++; /* 从左向右找第一个大于x的数 */ if(i < j) {s[j] = s[i];s1[j] = s1[i];j--;} } s[i] = x;s1[i]= y; qsort(s,s1, l, i-1); /* 递归调用 */ qsort(s,s1,i+1, r); }}int main(){int x,y,n,d,nagetiveY;int i,count,caseindex=0,flag;double left[scale],right[scale],temp;double l,r;while(scanf("%d%d",&n,&d)!=EOF){if(n==0&&d==0) break;count=0;caseindex++;nagetiveY=0;for(i=0;i<n;i++){scanf("%d%d",&x,&y);temp=sqrt(d*d-y*y);left[i]=x-temp;right[i]=x+temp;if(y<0||y>d) nagetiveY=1;//纵坐标小于0 或 纵坐标大于d 均事做不可行}if(d<=0) {printf("Case %d: -1\n",caseindex);continue;} //d必须为正。if(nagetiveY==1) {printf("Case %d: -1\n",caseindex);continue;}//排序qsort(right,left,0,n-1);flag=0;//贪心选择for(i=0;i<n;i++){if(flag==0){l=left[i];r=right[i];flag=1;count++;//printf("flag=0,l=%f,r=%f\n",l,r);}else{l=(left[i]>l)?left[i]:l;r=(right[i]<r)?right[i]:r;//printf("flag=1,l=%f,r=%f\n",l,r);if((r-l)<0) {flag=0;i--;} }}//输出结果printf("Case %d: %d\n",caseindex,count);}return 0;}
测试数据,来源于poj讨论组
2 5-3 4-6 34 5-5 3-3 52 33 320 8-20 7-18 6-5 8-21 8-15 7-17 5-1 5-2 3-9 61 22 33 44 55 66 77 88 79 610 50 02 30 22 32 30 21 33 31 2-3 22 48 52 4-4 4-3 3-3 1-3 0-1 00 56 03 01 2-3 12 13 21 2-3 12 11 20 22 30 22 34 -54 34 32 36 -93 -31 2-3 22 16 21 21 21 2-3 12 10 01 20 22 30 21 33 101 102 34 53 51 102 34 54 71 102 34 50 03 91 102 34 52 50 38 30 0
运行结果:
Case 1: 1
Case 2: 2
Case 3: 4
Case 4: 1
Case 5: 1
Case 6: -1
Case 7: 3
Case 8: -1
Case 9: 2
Case 10: 1
Case 11: 1
Case 12: -1
Case 13: -1
Case 14: 2
Case 15: 1
Case 16: 1
Case 17: 1
Case 18: -1
Case 19: -1
Case 20: -1
Case 21: 1
- POJ1328
- poj1328
- POJ1328
- poj1328
- POJ1328
- poj1328
- poj1328
- poj1328
- poj1328
- poj1328
- poj1328
- poj1328
- poj1328
- POJ1328
- POJ1328
- POJ1328
- poj1328
- POJ1328
- 7件女孩们永远也不知道的秘密《不过第八条你们不要看哦,看了你会后悔的…》 - Qzone日志
- KMP算法大总结
- Android客户端处理服务器端返回的Json格式数据
- 英文操作系统下Eclipse编码方式
- 马士兵语录
- POJ1328
- MySQL学习简明文档
- svn使用的
- 文件锁定
- unity3d中连接数据库 MySQL
- Google PageRank专利和李彦宏超链分析专利的区别
- msp430f5438时钟系统
- Method for node ranking in a linked database
- Hypertext document retrieval system and method