题目大意:给定几个点,求用几个雷达能覆盖全部的点,输入的点为坐标,雷达的半径首先给定!
贪心求解:
#include#include double x[1005],y[1005]; double left[1005],right[1005]; double r; int n,flag,test; int main() { test=1; while(scanf("%d%lf",&n,&r)!=EOF&&(n||r)) { int i,j,sum; double temp; flag=0; sum=1; for(i=0;i r) { flag=1; } } if(flag==1) { printf("Case %d: -1\n",test++); continue; } for(i=0;i x[j+1]) { temp=x[j]; x[j]=x[j+1]; x[j+1]=temp; temp=y[j]; y[j]=y[j+1]; y[j+1]=temp; } for(i=0;i temp) { temp=right[i+1]; sum++; } else if(right[i+1] #include double x[1005],y[1005]; double left[1005],right[1005]; double r; int n,flag,test; int main() { test=1; while(scanf("%d%lf",&n,&r)!=EOF&&(n||r)) { int i,j,sum; double temp; flag=0; sum=1; for(i=0;i r) { flag=1; } } if(flag==1) { printf("Case %d: -1\n",test++); continue; } for(i=0;i x[j+1]) { temp=x[j]; x[j]=x[j+1]; x[j+1]=temp; temp=y[j]; y[j]=y[j+1]; y[j+1]=temp; } for(i=0;i temp) { temp=right[i+1]; sum++; } else if(right[i+1]