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

學習心得(code)

superlong@CoreCoder

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  74 Posts :: 0 Stories :: 5 Comments :: 0 Trackbacks

公告

文字可能放在http://blog.csdn.net/superlong100,此處存放代碼

常用鏈接

留言簿(4)

我參與的團隊

搜索

  •  

最新隨筆

最新評論

  • 1.?re: Poj 1279
  • 對于一個凹多邊形用叉積計算面積 后能根據結果的正負來判斷給的點集的時針方向?
  • --bsshanghai
  • 2.?re: Poj 3691
  • 你寫的這個get_fail() 好像并是真正的get_fail,也是說fail指向的串并不是當前結點的子串。為什么要這樣弄呢?
  • --acmer1183
  • 3.?re: HDU2295[未登錄]
  • 這個是IDA* 也就是迭代加深@ylfdrib
  • --superlong
  • 4.?re: HDU2295
  • 評論內容較長,點擊標題查看
  • --ylfdrib
  • 5.?re: HOJ 11482
  • 呵呵..把代碼發在這里很不錯..以后我也試試...百度的編輯器太爛了....
  • --csuft1

閱讀排行榜

評論排行榜

#include <stdio.h>
#include 
<string.h>
#include 
<math.h>
#include 
<iostream>
#include 
<algorithm>

using namespace std;

#define eps 1e-4
#define PI 3.1415927
#define G 9.18
#define N 15
#define zero(x) (((x)>0?(x):-(x))<eps)
#define _sign(x) ((x)>eps?1:((x)<-eps?2:0))

struct point {
    
double x, y;
    
void out() {
        printf(
"%lf %lf\n", x, y);
    }

}
;

struct dam_borad {
    
double H, k;
    
int len, type;
    point cor[N];
}
dam[N];

double vx, vy, iniH, totTime;
int n, cases;

double xmult(point p1, point p2, point p0) {
    
return (p1.x - p0.x)* (p2.y-p0.y) - (p2.x - p0.x) * (p1.y - p0.y);
}


int dots_inline(point p1, point p2, point p3) {
    
return zero(xmult(p1, p2, p3));
}


int same_side(point p1, point p2, point l1, point l2) {
    
return xmult(l1, p1, l2) * xmult(l1, p2, l2) > eps;
}


int dot_online_in(point p, point l1, point l2) {
    
return zero(xmult(p, l1, l2)) && (l1.x-p.x) * (l2.x-p.x) < eps && 
                                     (l1.y
-p.y) * (l2.y-p.y) < eps;
}


int intersect_in(point u1, point u2, point v1, point v2) {
    
if!dots_inline(u1, u2, v1) || !dots_inline(u1, u2, v2))
        
return !same_side(u1, u2, v1, v2) && !same_side(v1,v2, u1, u2);
    
return dot_online_in(u1,v1, v2) || dot_online_in(u2,v1, v2) || dot_online_in(v1,u1, u2)
            
|| dot_online_in(v2,u1, u2);
}


point intersection(point u1, point u2, point v1, point v2) 
{
    point ret 
= u1;
    
double t = (( u1.x - v1.x) * (v1.y - v2.y) - (u1.y - v1.y) * (v1.x - v2.x)) / 
               (( u1.x 
- u2.x) * (v1.y - v2.y) - (u1.y - u2.y) * (v1.x - v2.x));
    ret.x 
+= (u2.x - u1.x) * t;
    ret.y 
+= (u2.y - u1.y) * t;
    
return ret;
}


int inside_polygon(point q, int n) {
    
int i , s[3= {111};
    
for(i = 0; i < dam[n].len && s[1| s[2]; i ++{
        s[ _sign(xmult(dam[n].cor[i
+1], q, dam[n].cor[i]))] = 0;
    }

    
return s[1]|s[2];
}


int cmp(dam_borad a, dam_borad b) {
    
return b.H - a.H < -eps;
}


void read() {
    scanf(
"%lf %lf %lf"&vx, &vy, &iniH);
    scanf(
"%d"&n);
    
for(int i = 0; i < n; i ++{
        scanf(
"%lf"&dam[i].H);
        scanf(
"%d"&dam[i].len);
        
for(int j = 0; j < dam[i].len; j ++{
            scanf(
"%lf %lf"&dam[i].cor[j].x, &dam[i].cor[j].y);
        }

        dam[i].cor[dam[i].len] 
= dam[i].cor[0];
        scanf(
"%d"&dam[i].type);
        scanf(
"%lf"&dam[i].k);
    }

}


void init() {
    sort(dam, dam 
+ n, cmp);
    totTime 
= 0;
}


void drop() {
    
int damNum = 0;
    point now, nowV;
    
double nowH;
    now.x 
= now.y = 0;
    nowV.x 
= vx;
    nowV.y 
= vy;
    nowH 
= iniH;
    
    
if(nowH < -eps) {
        totTime 
= -1;
        
return;
    }

    
    
while(damNum < n) {
        
if( dam[damNum].H < eps) break;
        
double detH = nowH - dam[damNum].H;
        
if(detH < -eps) {
            damNum 
++;
            
continue;
        }

        
double time = sqrt(2 * detH / G);
        point nowp, newp, end;
        
        newp.x 
= now.x + time * nowV.x;
        newp.y 
= now.y + time * nowV.y;
        
if( inside_polygon(newp, damNum) ) {
            
            nowH 
= dam[damNum].H;
            totTime 
+= time;
            
if( dam[damNum].type == 0 ) {
                
double tp1 = cos(dam[damNum].k), tp2 = sin(dam[damNum].k);
                
double tempvx = nowV.x * tp1 - nowV.y * tp2;
                
double tempvy = nowV.x * tp2 + nowV.y * tp1;
                nowV.x 
= tempvx;
                nowV.y 
= tempvy;
            }
 else if( dam[damNum].type == 1{
                nowV.x 
= dam[damNum].k;
            }
 else if( dam[damNum].type == 2{
                nowV.y 
= dam[damNum].k;
            }

            
            
if(fabs(nowV.x) < eps && fabs(nowV.y) < eps) {
                totTime 
= -1;
                
return;
            }

            end.x 
= newp.x + 1000 * nowV.x;
            end.y 
= newp.y + 1000 * nowV.y;
            now 
= newp;
            
for(int i = 0; i < dam[damNum].len; i ++{
                
if( dot_online_in(newp, dam[damNum].cor[i], dam[damNum].cor[i + 1]) ) {
                    point tp;
                    tp.x 
= newp.x + nowV.x; tp.y = newp.y + nowV.y;
                    
if( dot_online_in(tp, dam[damNum].cor[i], dam[damNum].cor[i + 1]) ) {
                        
if( dot_online_in(dam[damNum].cor[i], newp, end) ) {
                            now 
= dam[damNum].cor[i]; break;
                        }
 else {
                            now 
= dam[damNum].cor[i+1]; break;
                        }

                    }
 else {
                        
continue;
                    }

                }

                
if( intersect_in(newp, end, dam[damNum].cor[i], dam[damNum].cor[i + 1]) ) {
                    now 
= intersection(newp, end, dam[damNum].cor[i], dam[damNum].cor[i + 1]);
                    
break;
                }

            }

            
if( fabs(nowV.x) < eps ) totTime += fabs(now.y - newp.y) / fabs(nowV.y);
            
else totTime += fabs(now.x - newp.x) / fabs(nowV.x);
        }

        
        damNum 
++;
    }

    
if(nowH > 0{
        totTime 
+= sqrt(2 * nowH / G);
    }

}


void out() {
    printf(
"Case %d: ", cases++);
    
if(totTime > -eps)
            printf(
"%.2lf\n", totTime);
    
else     printf("Forever!\n");
}


int main() {
    
int t;
    scanf(
"%d"&t);
    cases 
= 1;
    
while(t --{
        read();
        init();
        drop();
        
out();
    }

}

posted on 2010-07-14 22:43 superlong 閱讀(325) 評論(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>
            久久久久久夜| 在线亚洲自拍| 99精品热视频只有精品10| 永久免费毛片在线播放不卡| 国产网站欧美日韩免费精品在线观看| 国产精品久久网站| 国产精品亚洲不卡a| 国产欧美精品一区二区三区介绍| 国产欧美日韩一区二区三区在线 | 国产精品国产三级国产专区53| 欧美人与禽猛交乱配| 国产精品多人| 激情亚洲网站| 在线亚洲电影| 久久久久久噜噜噜久久久精品| 欧美96在线丨欧| 99re视频这里只有精品| 亚洲欧美国产视频| 欧美成人精品在线视频| 国产精品二区在线| 在线观看91精品国产入口| 99视频精品在线| 久久国产精品一区二区| 亚洲第一天堂av| 一区二区三区www| 久久久999成人| 国产精品二区二区三区| 亚洲国产三级网| 欧美一区免费视频| 亚洲人成7777| 久久久久久久精| 国产精品视频xxxx| 亚洲美女一区| 免费成人黄色| 亚洲欧美成人精品| 欧美日韩精选| 亚洲人成7777| 嫩模写真一区二区三区三州| 亚洲一区二区视频| 欧美日韩成人综合| 91久久香蕉国产日韩欧美9色| 久久久久中文| 欧美一级视频精品观看| 国产精品激情电影| 一区二区欧美精品| 欧美粗暴jizz性欧美20| 欧美在线日韩在线| 国产精品网站在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美国产激情二区三区| 久久精品国产一区二区电影| 国产欧美精品日韩区二区麻豆天美 | 久久综合网络一区二区| 日韩视频欧美视频| 欧美mv日韩mv亚洲| 黄色亚洲精品| 久久久久久免费| 香蕉av777xxx色综合一区| 国产精品久久久久毛片大屁完整版| 日韩一区二区电影网| 亚洲国产一二三| 欧美成人一区二区三区片免费| 在线免费一区三区| 免费毛片一区二区三区久久久| 欧美在线短视频| 韩国女主播一区| 久久午夜电影| 久久天天狠狠| 亚洲国产精品激情在线观看| 开元免费观看欧美电视剧网站| 久久久久久九九九九| 亚洲国产综合91精品麻豆| 欧美激情一区在线观看| 欧美韩日精品| 亚洲淫性视频| 欧美亚洲视频在线看网址| 国产无一区二区| 欧美91精品| 欧美日韩一区二区视频在线观看| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 亚洲国产成人久久综合一区| 欧美国产视频日韩| 亚洲午夜视频在线观看| 亚洲一区二区三区在线看| 国产午夜亚洲精品羞羞网站 | 亚洲欧美不卡| 依依成人综合视频| 亚洲人成高清| 国产嫩草一区二区三区在线观看| 久久久水蜜桃av免费网站| 欧美黑人国产人伦爽爽爽| 亚洲网址在线| 久久成人18免费观看| 亚洲裸体在线观看| 亚洲欧美伊人| 99国产精品国产精品久久 | 欧美二区在线| 欧美一级理论片| 欧美成人精品h版在线观看| 午夜视频一区| 欧美福利一区二区| 久久亚洲综合色| 欧美性色aⅴ视频一区日韩精品| 久久午夜视频| 国产精品区一区二区三区| 欧美激情一区二区三区高清视频| 国产美女一区二区| 黄页网站一区| 在线亚洲免费| 久久久欧美精品sm网站| 亚洲影院在线| 欧美 日韩 国产一区二区在线视频 | 亚洲国产欧美一区二区三区丁香婷| 亚洲精品美女久久久久| 国模套图日韩精品一区二区| 亚洲免费av电影| 亚洲福利精品| 欧美影视一区| 亚洲欧美日韩爽爽影院| 欧美大片免费观看| 免费看av成人| 国自产拍偷拍福利精品免费一| 亚洲日本成人| 亚洲精品乱码久久久久久| 久久精品视频免费播放| 欧美在线视频一区二区| 国产精品久久久久久亚洲调教 | 夜夜爽www精品| 老司机成人网| 美女脱光内衣内裤视频久久影院| 国产免费观看久久| 午夜久久久久久| 亚洲欧美另类中文字幕| 欧美日韩情趣电影| 亚洲精品欧美极品| 日韩天堂在线视频| 欧美韩日一区二区三区| 亚洲国产va精品久久久不卡综合| 国产精品视频99| 亚洲欧洲另类| 一区二区自拍| 亚洲综合视频1区| 在线视频一区观看| 毛片一区二区| 久久亚洲综合色| 国产精品视频999| 9国产精品视频| 99视频精品| 欧美成人综合| 欧美大片免费观看在线观看网站推荐| 国产精品免费电影| 一本一本久久a久久精品综合麻豆| 亚洲国产精品嫩草影院| 久久精品一二三| 久久精品在线播放| 国产精品自在线| 亚洲一级二级在线| 亚洲欧美国产va在线影院| 欧美日韩一区二区在线播放| 最新日韩在线视频| 亚洲精品在线三区| 欧美高清成人| 亚洲精品国产精品乱码不99| 亚洲日本成人网| 欧美不卡一卡二卡免费版| 国产一区二区三区日韩| 久久se精品一区二区| 日韩视频在线一区| 欧美另类在线观看| 99精品免费视频| 欧美亚洲日本一区| 在线观看欧美| 欧美色视频一区| 久久精品亚洲精品| 噜噜噜噜噜久久久久久91| 久久综合国产精品| 91久久夜色精品国产网站| 欧美日韩高清在线播放| 性欧美暴力猛交另类hd| 亚洲高清三级视频| 午夜在线视频观看日韩17c| 一区视频在线看| 欧美亚一区二区| 乱人伦精品视频在线观看| 日韩西西人体444www| 久久青草欧美一区二区三区| 在线一区免费观看| 亚洲电影观看| 国产日韩欧美精品综合| 欧美美女日韩| 久久综合网色—综合色88| 中文在线一区| 亚洲欧洲精品一区二区三区不卡 | 欧美三区在线观看| 猛男gaygay欧美视频| 欧美一乱一性一交一视频| 99精品欧美一区二区三区综合在线 | 欧美激情久久久久久| 久久精品二区| 午夜国产精品影院在线观看|