青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

oyjpArt ACM/ICPC算法程序設計空間

// I am new in programming, welcome to my blog
I am oyjpart(alpc12, 四城)
posts - 224, comments - 694, trackbacks - 0, articles - 6

PKU 1328 Radar Installation

Posted on 2007-06-22 20:00 oyjpart 閱讀(3000) 評論(0)  編輯 收藏 引用 所屬分類: ACM/ICPC或其他比賽

Radar Installation
Time Limit:1000MS  Memory Limit:10000K
Total Submit:2704 Accepted:564

Description
Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locating in the sea side. And any radar installation, locating on the coasting, can only cover d distance, so an island in the sea can be covered by a radius installation, if the distance between them is at most d.

We use Cartesian coordinate system, defining the coasting is the x-axis. The sea side is above x-axis, and the land side below. Given the position of each island in the sea, and given the distance of the coverage of the radar installation, your task is to write a program to find the minimal number of radar installations to cover all the islands. Note that the position of an island is represented by its x-y coordinates.


Figure A Sample Input of Radar Installations



 

Input
The input consists of several test cases. The first line of each case contains two integers n (1<=n<=1000) and d, where n is the number of islands in the sea and d is the distance of coverage of the radar installation. This is followed by n lines each containing two integers representing the coordinate of the position of each island. Then a blank line follows to separate the cases.

The input is terminated by a line containing pair of zeros

Output
For each test case output one line consisting of the test case number followed by the minimal number of radar installations needed. "-1" installation means no solution for that case.

Sample Input

3 2
1 2
-3 1
2 1
1 2
0 2
0 0

 

Sample Output

Case 1: 2
Case 2: 1

 

Source
Beijing 2002


Algorithm: Greedy
Step 1: 輸入數據 如果有一個點的y坐標大于d 直接輸出-1 長生相應的區間(在某一個區間里任意放置一個Radar 則是這個Island可視)
Step 2: 按照左端點排序(如果左端點相等 則必須按右邊反向排序, 理由在于下一步為了篩選出包含的 必須的把大范圍的放到前面) 注意這里面最好要用浮點判斷規則
Step 3: 利用Stack對這些區間做預處理 把被包含的區間標識出來
Step 4: 貪心選擇右端的點

#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <math.h>
using namespace std;

const int N = 1000;
const double EPS = 1e-7;

struct E { double a, b; } e[N];
int n, d;
bool ava[N];
double p[N];

inline int dblcmp(double a, double b) {
 if( fabs(a-b) < EPS ) return 0;
 if( a-b > 0 ) return 1;
 return -1;
}

bool operator<(const E& a, const E& b) {
 if(dblcmp(a.a, b.a) == 0)
  return dblcmp(a.b, b.b) == 1;
 return dblcmp(a.a, b.a) == -1;
}


int main() {
 int i, j, x, y;
 int tc = 0;
 while(scanf("%d %d", &n, &d), n + d) {
  tc++;
  int ok = 1;
  for(i = 0; i < n; ++i) {
   scanf("%d %d", &x, &y);
   if(y > d) ok = 0;
   double offset = sqrt ( d * d - y * y );
   e[i].a = x - offset, e[i].b = x + offset;
   ava[i] = 1;
  }
  if(!ok) { printf("Case %d: -1\n", tc); continue; }
  sort(e, e + n);
  int stack[N], top = 0;
  stack[top++] = 0;
  for(i = 1; i < n; ++i) {
   while(top > 0 && dblcmp(e[stack[top-1]].b, e[i].b) != -1)  {
    ava[stack[--top]] = 0;
   }
   stack[top++] = i;
  }
  
  for(i = 0; !ava[i]; ++i);
  p[i] = e[i].b;
  int cnt = 1;
  for(i = i+1; i < n; ++i) if(ava[i]) {
   for(j = i-1; !ava[j]; j--);
   if(p[j] >= e[i].a)  p[i] = p[j];
   else { p[i] = e[i].b; cnt++; }
  }
  printf("Case %d: %d\n", tc, cnt);
 }
 return 0;
}

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美电影院| 久久久999| 亚洲一区二区三区四区中文| 另类尿喷潮videofree | 久久精品99无色码中文字幕| 欧美另类在线播放| 亚洲精品欧美日韩| 欧美激情第1页| 午夜欧美理论片| 欧美性久久久| 中文日韩在线视频| 亚洲美女在线看| 欧美精品一区二区三| 亚洲黄色精品| 亚洲国产日韩欧美一区二区三区| 欧美专区在线观看一区| 欧美日韩亚洲综合| 一区二区电影免费在线观看| 亚洲第一搞黄网站| 免费试看一区| 日韩午夜剧场| 亚洲三级视频在线观看| 欧美大香线蕉线伊人久久国产精品| 一色屋精品视频在线看| 久久午夜国产精品| 久久免费国产| 亚洲国产高清视频| 欧美好骚综合网| 欧美freesex8一10精品| 亚洲日韩欧美视频一区| 欧美激情中文不卡| 欧美片第1页综合| 亚洲视频国产视频| 亚洲一区在线看| 国产欧美日韩三级| 久久亚洲视频| 欧美不卡视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 一本一本久久| 国产欧美日韩在线观看| 性欧美激情精品| 久久久久久9| 亚洲视频导航| 亚洲视频一区在线观看| 最新亚洲一区| 一本色道综合亚洲| 亚洲午夜三级在线| 亚洲人成免费| 亚洲丝袜av一区| 国内一区二区在线视频观看| 欧美激情精品久久久久久| 亚洲午夜精品网| 欧美 日韩 国产一区二区在线视频 | 另类国产ts人妖高潮视频| 久久久青草婷婷精品综合日韩| 午夜欧美不卡精品aaaaa| 韩日午夜在线资源一区二区| 欧美韩日一区| 欧美经典一区二区三区| 欧美www视频在线观看| 国产精品一二三| 销魂美女一区二区三区视频在线| 一本久久综合| 国产精品一区二区在线观看| 欧美另类变人与禽xxxxx| 久久天堂av综合合色| 久久久久久夜| 亚洲伊人伊色伊影伊综合网| 欧美综合二区| 中国女人久久久| 久久久久久一区二区| 一区二区欧美激情| 久久久国产精品一区二区中文| 一区二区成人精品| 久久久久国产精品一区三寸| 亚洲自拍另类| 香蕉乱码成人久久天堂爱免费| 欧美日韩中文字幕在线视频| 99在线精品免费视频九九视| 性欧美1819性猛交| 国产日韩欧美自拍| 美女脱光内衣内裤视频久久影院| 一本一本久久a久久精品综合麻豆| 久久夜色精品亚洲噜噜国产mv| 久久av一区二区三区亚洲| 精品电影在线观看| 久久亚洲影院| 亚洲欧美中文字幕| 日韩亚洲精品电影| 久久手机精品视频| 国产日韩综合| 亚洲国产另类精品专区| 国产毛片久久| 亚洲高清资源| 欧美jizzhd精品欧美喷水| 韩日视频一区| 亚洲麻豆av| 亚洲人成网在线播放| 久久av老司机精品网站导航| 午夜精品国产精品大乳美女| 欧美视频一区| 99视频在线精品国自产拍免费观看| 亚洲国产成人精品久久久国产成人一区| 亚洲欧美视频一区| 欧美影院在线| 国产欧美一区二区精品婷婷 | 亚洲欧洲精品一区二区三区波多野1战4| 国产综合色产在线精品| 亚洲欧美日韩久久精品| 亚洲欧美综合v| 国产乱人伦精品一区二区| 亚洲综合色噜噜狠狠| 欧美一区视频| 韩国三级在线一区| 久久综合久色欧美综合狠狠| 免费在线成人av| 亚洲伦理在线免费看| 欧美日韩国产成人精品| 一区二区免费在线观看| 欧美一级视频精品观看| 国产午夜精品一区二区三区视频| 可以看av的网站久久看| 亚洲欧美成人在线| 欧美一区二区在线看| 99国产精品久久久| 亚洲国产欧美一区二区三区丁香婷| 免费观看久久久4p| 欧美大片免费观看在线观看网站推荐| 免费黄网站欧美| 欧美三区在线| 狠狠入ady亚洲精品| 小黄鸭精品aⅴ导航网站入口| 国产日产欧美精品| 亚洲一区二区免费看| 一区二区三区在线看| 中文亚洲字幕| 性一交一乱一区二区洋洋av| 99精品国产在热久久婷婷| 亚洲高清激情| 亚洲精品久久在线| 欧美黄色成人网| 国产精品老女人精品视频| 欧美精品www| 亚洲制服av| 在线一区二区三区四区| 久久综合色天天久久综合图片| 中文日韩电影网站| 欧美一区国产二区| 日韩亚洲精品视频| 久久综合狠狠综合久久综青草| 欧美日产国产成人免费图片| 亚洲国产成人在线| 亚洲激情小视频| 欧美a级片网| 在线不卡视频| 欧美成人a∨高清免费观看| 一二三区精品| 欧美日韩精品综合| 欧美有码在线视频| 欧美一级免费视频| 亚洲人成网在线播放| 国产农村妇女精品一二区| 嫩草成人www欧美| 性感少妇一区| 99亚洲精品| 亚洲人久久久| 欧美激情女人20p| 久久综合婷婷| 久久精品一区二区| 亚洲欧美日韩国产| 亚洲天堂av电影| 亚洲免费久久| 欧美成人免费网| 久久久久久久久久久久久9999| 亚洲一区欧美激情| 亚洲一区二区三区精品在线| 99精品视频免费观看| 亚洲免费电影在线| 99riav久久精品riav| 日韩午夜av在线| 99精品国产福利在线观看免费| 亚洲电影在线观看| 亚洲欧洲日产国产综合网| 亚洲国产另类久久久精品极度| 亚洲国产成人精品久久久国产成人一区 | 国产欧美日韩精品丝袜高跟鞋| 国产精品mm| 国产精品嫩草影院一区二区| 国产精品你懂的在线| 国产精品美女久久福利网站| 国产精品免费看片| 国产视频一区在线观看一区免费| 国产精品一区二区三区久久久| 国产伦精品一区二区三区高清| 国产日韩高清一区二区三区在线| 国产视频在线一区二区| 永久久久久久| 99成人精品| 午夜在线观看免费一区| 久久久精品五月天|