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

學習心得(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>
            欧美91福利在线观看| 欧美一区二区三区免费大片| 久久先锋资源| 久久五月激情| 亚洲日本中文字幕区| 亚洲黄色有码视频| 欧美精品激情在线| 欧美一级电影久久| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲国产一区二区三区在线播 | 国产日韩欧美一区二区三区在线观看 | 校园激情久久| 永久免费毛片在线播放不卡| 欧美黄在线观看| 国产精品v欧美精品v日韩精品| 欧美在线免费看| 榴莲视频成人在线观看| 中文国产一区| 久久九九国产精品| 在线视频中文亚洲| 欧美中文在线免费| 99热精品在线观看| 欧美一区二区三区四区在线| 亚洲日本va午夜在线影院| 中日韩午夜理伦电影免费| 揄拍成人国产精品视频| 日韩视频精品| 在线精品视频一区二区三四| 99精品国产福利在线观看免费 | 亚洲人成在线观看| 欧美一区二区三区视频免费| 亚洲美女精品久久| 欧美一区二区三区精品电影| 一本色道久久综合亚洲91| 久久狠狠一本精品综合网| 99在线热播精品免费| 久久久久久91香蕉国产| 亚洲欧美日韩中文播放| 欧美69wwwcom| 美女视频一区免费观看| 国产噜噜噜噜噜久久久久久久久| 欧美激情一区二区三区四区 | 欧美性大战久久久久久久| 亚洲国产欧美日韩另类综合| 国一区二区在线观看| 一区二区三区日韩欧美| 亚洲精品在线观看视频| 久久中文欧美| 久久综合亚州| 国内一区二区在线视频观看| 亚洲免费在线视频一区 二区| 一本久久青青| 欧美日本簧片| 亚洲精品在线三区| 亚洲毛片在线观看| 欧美大成色www永久网站婷| 欧美成人精品一区二区三区| 狠狠色噜噜狠狠色综合久| 欧美一区二区高清在线观看| 久久国产精品久久久久久电车| 欧美日韩天天操| 亚洲精品一区二区三区不| 亚洲免费观看| 欧美看片网站| 一本色道久久综合亚洲精品按摩 | 精品动漫3d一区二区三区| 欧美亚洲视频| 久久久久www| 伊人男人综合视频网| 久久久久青草大香线综合精品| 久久人人爽国产| 伊人精品久久久久7777| 免费亚洲视频| 亚洲精品一区二区网址| 亚洲一区影院| 国产精品夜夜嗨| 久久精品国产亚洲一区二区| 女人色偷偷aa久久天堂| 亚洲精品一区二区三区四区高清| 欧美成人三级在线| 一区二区动漫| 久久激情视频久久| 亚洲电影免费观看高清| 欧美国产免费| 亚洲影院免费| 麻豆精品视频在线| 一区二区三区四区蜜桃| 国产区亚洲区欧美区| 久久久亚洲人| 在线视频欧美精品| 久久久久久电影| av成人天堂| 国产日韩欧美精品综合| 葵司免费一区二区三区四区五区| 亚洲精品久久久久久下一站 | 一本一本大道香蕉久在线精品| 午夜亚洲福利| 亚洲国产另类久久久精品极度| 欧美三级黄美女| 久久久久久久久岛国免费| 亚洲日韩欧美视频一区| 久久精品国产99国产精品| 亚洲精品久久久久中文字幕欢迎你| 国产精品国产三级国产aⅴ入口| 久久久亚洲精品一区二区三区 | 亚洲免费电影在线观看| 久久精品理论片| 亚洲少妇最新在线视频| 激情久久五月天| 国产精品入口麻豆原神| 欧美经典一区二区| 久久精品一区二区三区不卡牛牛 | 欧美二区在线播放| 久久福利影视| 亚洲专区一区| aa级大片欧美| 亚洲成在人线av| 久久婷婷麻豆| 久久久成人网| 亚洲欧美综合国产精品一区| 亚洲美女精品久久| 亚洲人久久久| 亚洲第一页中文字幕| 国产无一区二区| 国产精品免费久久久久久| 欧美精品日韩一本| 免费日韩视频| 欧美不卡高清| 免费黄网站欧美| 久久午夜精品一区二区| 久久都是精品| 久久久国产精品亚洲一区| 午夜精品久久久| 亚洲欧美影音先锋| 香蕉成人伊视频在线观看 | 999亚洲国产精| 亚洲精品影院| 亚洲美女av网站| 亚洲国产日韩欧美综合久久| 欧美韩国一区| 亚洲大胆美女视频| 欧美韩日高清| 亚洲精品一区二区三区四区高清| 亚洲精品中文在线| 一区二区三区色| 亚洲专区在线| 欧美亚洲免费电影| 久久亚洲不卡| 欧美国产精品| 欧美午夜欧美| 国产人成精品一区二区三| 国产亚洲精品资源在线26u| 国产一级一区二区| 韩日在线一区| 日韩视频在线一区| 亚洲午夜激情在线| 午夜精品一区二区三区在线播放 | 美日韩精品视频免费看| 欧美超级免费视 在线| 亚洲国产精品va在线看黑人动漫| 亚洲欧洲在线一区| 一区二区三区产品免费精品久久75| 中文在线资源观看网站视频免费不卡 | 久久99伊人| 欧美大片在线观看| 亚洲经典视频在线观看| 一区二区三区四区五区视频| 亚洲欧美日韩国产综合在线| 久久狠狠亚洲综合| 欧美日韩高清在线播放| 国产日韩1区| 亚洲人体1000| 欧美在线黄色| 亚洲人午夜精品免费| 亚洲免费一区二区| 麻豆成人在线| 国产精品大片| 亚洲国产欧美一区二区三区同亚洲| 一区二区三区视频在线播放| 久久精品中文字幕一区| 亚洲欧洲另类| 欧美一区二区在线| 欧美日韩国产精品一卡| 国模叶桐国产精品一区| 中日韩视频在线观看| 欧美成人黑人xx视频免费观看| 一本到高清视频免费精品| 久久一综合视频| 国产精品一区二区男女羞羞无遮挡 | 亚洲最新在线| 蜜臀av性久久久久蜜臀aⅴ| 亚洲午夜精品久久| 欧美激情欧美激情在线五月| 国产亚洲成年网址在线观看| 中文国产成人精品| 欧美激情精品久久久久久变态| 亚洲欧美在线磁力| 国产精品成人一区二区网站软件| 亚洲精品日韩在线观看| 另类酷文…触手系列精品集v1小说|