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

算法學(xué)社
記錄難忘的征途
posts - 141,comments - 220,trackbacks - 0
題目描述:
   在無限平面上有N(N<1,000)個(gè)圓。問一條直線最多可以“穿過”幾個(gè)圓,相切也算。

算法分析:
   
   這樣的線一定是某兩個(gè)圓的切線。但是枚舉切線再O(N)判斷的話肯定會(huì)T。

   于是我們枚舉每個(gè)“中心圓”,求出這個(gè)圓與其他所有圓的切線。并極角排序。
   把每個(gè)切線想像成事件點(diǎn),每個(gè)事件點(diǎn)要么增加一個(gè)圓,要么刪除一個(gè)圓。

   這樣的話對(duì)這個(gè)環(huán)行區(qū)間進(jìn)行統(tǒng)計(jì)就可以了。
   
   求切線的時(shí)候,要判斷中心圓與其他圓的關(guān)系: 包含,內(nèi)切or外切,相交,被包含,分離。
   求切線其實(shí)只需要求一個(gè)角就可以了,不需要求完整的兩點(diǎn)式。

#include<iostream>
#include<cassert>
#include<algorithm>
#include<cstdio>
#include<complex>
#include<cmath>
using namespace std;
// template
typedef complex<double> pnt;
typedef pair<pnt,double> circle;
const int N = 1005;
const double eps = 1e-10;
const double pi = acos(-1.0);
inline bool eq(double a, double b){return abs(b-a) < eps;}
inline double fix(double arg) {
    while(arg > pi) arg -= 2*pi;
    while(arg <= -pi) arg += 2*pi;
    return arg;
}
circle num[N];
struct line {
    int id,c;
    double arg;
    line(){}
    line(int _id,int _c,double _arg) :
    id(_id) , c(_c), arg(_arg){
//        cout<<"add: "<<id<<" "<<arg<<" "<<c<<endl;
    }
    bool operator < (const line& A) const{
        return eq(arg , A.arg) ? c > A.c : arg < A.arg;
    }
} Line[N<<2];
// cut line
#define ht first
#define rs second
inline void cut_line(const circle &A, const circle &B, int& ans, int& cnt,const int& id) {
    double d = abs(A.ht - B.ht) ;
    if(d <= abs(A.rs - B.rs)) {
        if(d <= B.rs - A.rs ) {ans ++; return ;}
        if(eq(d , A.rs - B.rs) ) {
            Line[cnt++] = line(id, 1 , arg(B.ht - A.ht));
            Line[cnt++] = line(id,-1 , arg(B.ht - A.ht));
        }
        return ;
    }
    double t;
    t = acos((A.rs - B.rs)/ d);
    double ag = arg(B.ht - A.ht);
    Line[cnt++] = line(id, 1 , fix(ag-t));
    Line[cnt++] = line(id,-1 , fix(ag+t));
    if(d > A.rs + B.rs + eps) {
        double t = acos((A.rs + B.rs)/d);
        Line[cnt++] = line(id, 1 , fix(ag+t));
        Line[cnt++] = line(id,-1 , fix(ag-t));
    }
}
// solve
bool vis[N];
int work(int n, int len){
    int ans = 0, sum = 0;
    for(int i=0;i<n;i++){
        vis[i] = 0;
    }
    for(int i=0;i<len+len;i++) {
        int k = i%len;
        int id = Line[k].id;
        int c = Line[k].c;
        if(c == 1){
            assert(vis[id]==0);
            vis[id] = 1; sum ++;
        }
        else if(c == -1) {
            if(vis[id] == 1)
                sum --, vis[id] = 0;
        }
        if(sum > ans ) ans = sum;
    }
    return ans;
}
// main
int main(){
    int cas;
    cin >> cas;
    for(int oo=1; oo<= cas; oo++) {
        int n,len = 0;
        scanf("%d",&n);
        for(int i=0;i<n;i++) {
            int x,y,r;
            scanf("%d%d%d",&x,&y,&r);
            num[i] = make_pair(pnt(x,y) , r);
        }
        int ans = 0;
        for(int s = 0; s < n; s ++) {
//            cout<<"start: "<<s<<endl;
            len = 0; int sum = 1;
            for(int i=0;i< n; i++) if(i!=s) 
                cut_line(num[s] , num[i], sum, len, i);
            sort(Line, Line + len);
            sum += work(n,len);
            if(sum > ans) ans = sum;
        }
        printf("Case #%d: %d\n",oo, ans);
    }
}
posted on 2012-08-06 14:58 西月弦 閱讀(1260) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 解題報(bào)告
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲啪啪91| 国产日韩欧美综合| 欧美激情中文字幕一区二区| 亚洲欧美日韩一区在线| 亚洲乱码精品一二三四区日韩在线| 国产一区二区久久久| 国内久久视频| 亚洲黄网站在线观看| 99xxxx成人网| 亚洲在线观看免费视频| 欧美中在线观看| 美国十次了思思久久精品导航| 免费观看亚洲视频大全| 欧美91视频| 日韩午夜av电影| 亚洲免费在线视频| 久久久国产精彩视频美女艺术照福利| 久久蜜桃av一区精品变态类天堂| 免费在线成人av| 国产精品你懂的| 亚洲国产精品传媒在线观看| 亚洲午夜在线观看| 裸体一区二区| 日韩午夜av在线| 久久成人综合视频| 欧美日韩免费一区二区三区视频| 国产精品亚洲成人| 亚洲精品社区| 久久久综合网| 日韩视频国产视频| 久久噜噜噜精品国产亚洲综合 | 久久久久久夜精品精品免费| 美女福利精品视频| 9国产精品视频| 久久久久免费观看| 国产精品久久国产愉拍| 亚洲国产高清在线| 欧美一区二区啪啪| 亚洲精品国产精品乱码不99按摩 | 欧美一区二区网站| 美女久久网站| 国内精品免费在线观看| av成人免费观看| 牛牛影视久久网| 香蕉久久夜色精品| 欧美午夜精品久久久| 91久久久久| 久久婷婷亚洲| 性亚洲最疯狂xxxx高清| 国产精品成人一区二区网站软件| 亚洲精品久久久蜜桃| 久久久五月天| 新片速递亚洲合集欧美合集 | 好看的亚洲午夜视频在线| 一区二区三区欧美日韩| 欧美国产在线电影| 久久精品亚洲热| 国产色爱av资源综合区| 一区二区三区精密机械公司 | 欧美精品 日韩| 亚洲大片在线| 老司机午夜精品视频| 欧美与黑人午夜性猛交久久久| 国产精品日韩欧美一区| 亚洲欧美激情视频| 亚洲一区二区三区成人在线视频精品 | 亚洲国产成人在线| 久久精品国产99国产精品澳门| 国产精品美腿一区在线看| 亚洲午夜久久久| 中文精品视频| 国产精品一区二区久久精品 | 亚洲欧美大片| 亚洲欧美99| 国内揄拍国内精品久久| 玖玖综合伊人| 老司机一区二区三区| 亚洲激情亚洲| 亚洲二区三区四区| 欧美日韩国内| 亚洲欧美中文另类| 亚洲欧美日韩天堂| 国产资源精品在线观看| 欧美国产日本高清在线| 欧美日韩精品在线播放| 欧美一级在线视频| 香蕉成人伊视频在线观看| 在线精品视频一区二区三四| 亚洲欧洲一区二区三区在线观看| 欧美日韩网站| 久久国内精品视频| 免费在线观看一区二区| 亚洲综合第一页| 久久精品国产成人| 妖精成人www高清在线观看| 亚洲一区二区三区精品动漫| 激情久久影院| 亚洲精品乱码久久久久久日本蜜臀| 欧美午夜激情在线| 免费观看在线综合色| 欧美午夜不卡视频| 欧美成人小视频| 国产精品久久久| 欧美高清视频在线 | 中国成人亚色综合网站| 国产视频一区免费看| 亚洲高清在线观看| 国产亚洲综合精品| 一本一本久久| 91久久精品国产91久久性色| 亚洲一区二区精品视频| 亚洲黑丝一区二区| 亚洲欧美日韩高清| 99re亚洲国产精品| 欧美在线3区| 亚洲主播在线| 免费观看久久久4p| 久久免费国产| 欧美视频1区| 欧美激情第10页| 国产一区二区0| 亚洲毛片在线| 亚洲片区在线| 久久久久五月天| 久久精品亚洲精品国产欧美kt∨| 欧美视频免费看| 最近中文字幕日韩精品| 黄页网站一区| 欧美一区视频在线| 亚洲女同同性videoxma| 欧美福利视频| 久久综合色播五月| 国产在线成人| 欧美有码在线观看视频| 久久aⅴ乱码一区二区三区| 欧美日韩在线免费观看| 最新热久久免费视频| 亚洲国内自拍| 女人色偷偷aa久久天堂| 欧美成人免费大片| 亚洲国产精品美女| 久久影院午夜论| 欧美激情中文字幕一区二区| 亚洲激情专区| 欧美片在线播放| 亚洲人成网站777色婷婷| 亚洲精品一区二区三区av| 麻豆精品一区二区av白丝在线| 欧美大片在线观看| 亚洲日韩欧美视频| 欧美日韩免费区域视频在线观看| 一区二区精品在线观看| 一区二区三区欧美在线观看| 欧美日韩免费精品| 一区二区成人精品| 午夜激情亚洲| 国产日韩欧美不卡| 久久九九精品| 欧美成熟视频| 亚洲美女黄网| 国产精品第十页| 亚洲一区二区在线播放| 欧美一区1区三区3区公司| 韩日精品视频一区| 欧美91视频| 亚洲视频在线一区| 久久精品免费播放| 亚洲成色777777在线观看影院| 免费成人高清视频| 99国产欧美久久久精品| 新67194成人永久网站| 曰韩精品一区二区| 欧美日韩国产一区二区三区地区| 亚洲欧美视频| 免费成人毛片| 亚洲图片欧美午夜| 国产亚洲在线| 欧美日韩理论| 久久精品人人做人人爽| 亚洲欧洲一区二区三区在线观看| 亚洲欧美制服中文字幕| 亚洲高清在线精品| 国产精品青草久久久久福利99| 久久精品99国产精品日本| 亚洲精品影院在线观看| 久久久久久自在自线| 亚洲片在线观看| 国产在线不卡精品| 欧美亚韩一区| 欧美大片一区| 久久久久国产精品人| 一区二区不卡在线视频 午夜欧美不卡' | 国产精品黄视频| 久久综合五月| 午夜在线观看免费一区| 亚洲图片欧美午夜| 亚洲国产精品成人综合| 久久久久久夜精品精品免费| 亚洲一区日韩| 99这里只有久久精品视频|