日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

csu1377Putter HOJ12816

發(fā)布時間:2025/5/22 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 csu1377Putter HOJ12816 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

鏈接:(csu)http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1377

   (HOJ)http://49.123.82.55/online/?action=problem&type=list&courseid=0&querytext=&pageno=57

題意:

  給定凸多邊形的點(按順時針),多邊形內(nèi)一點沿某個方向運動,碰到邊進行鏡面反射,問在一條邊不碰超過兩次的情況下,有多少種不同的碰撞方法。多邊形最多8條邊。

?

思路:

  枚舉每一種情況,合理就對結(jié)果+1,枚舉用dfs輕松加愉快。本題關(guān)鍵在于求出鏡像點,然后以鏡像點出發(fā),對邊進行考察,若能直線到達,則該點能被反射到,否則不能。

?

Code:

1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 #include <cstring> 5 #include <algorithm> 6 #define op operator 7 #define cp const P& 8 #define cn const 9 #define db double 10 #define rt return 11 using namespace std; 12 cn db eps = 1e-9; 13 cn db pi = acos(-1.0); 14 inline int sig(db x) {return (x>eps) - (x<-eps);} 15 16 struct P{ 17 db x, y; 18 P(db a = 0.0, db b = 0.0) : x(a), y(b) {} 19 void in() { scanf("%lf %lf", &x, &y);} 20 void out(){ printf("%lf %lf\n", x, y);} 21 bool op<(cp a)cn {return sig(x-a.x) ? sig(x-a.x) : sig(y-a.y);} 22 P op-(cp a)cn {return P(x-a.x, y-a.y);} 23 P op+(cp a)cn {return P(x+a.x, y+a.y);} 24 db op^(cp a)cn {return x*a.y - y*a.x;} 25 db cross(P a, P b) {return (a-*this) ^ (b-*this);} 26 db op*(cp a)cn {return x*a.x + y*a.y;} //點積 27 db dot(P a, P b) {return (a-*this) * (b-*this);} 28 P op*(cn db &a)cn {return P(a*x, a*y);} 29 bool op/(cp a)cn {return sig(x*a.y - y*a.x) == 0;} 30 db dis() {return sqrt(x*x + y*y);} 31 db dis(P a) {return (a-*this).dis();} 32 P T() {return P(-y, x);} 33 P roate(db d) { 34 return P(x*cos(d) - y*sin(d), y*cos(d) + x*sin(d)); 35 } 36 bool on(P a, P b) {return !sig(cross(a, b)) && sig(dot(a, b)) <= 0;} //點在線段上 37 P Mirror_P(P a, P b) { 38 P v1 = *this - a, v2 = b - a; 39 db w = acos(v1*v2 / v1.dis() / v2.dis()); 40 int f = sig(v1^v2); 41 w = 2*w*f; 42 rt a + v1.roate(w); 43 } 44 }p[10], q; 45 inline P inset(P a1, P b1, P a2, P b2) { 46 db u = (b1^a1), z = b2^a2, w = (b1-a1) ^ (b2-a2); 47 P v; 48 v.x = ((b2.x-a2.x)*u - (b1.x-a1.x)*z) / w; 49 v.y = ((b2.y-a2.y)*u - (b1.y-a1.y)*z) / w; 50 rt v; 51 } 52 bool vis[10]; 53 int ans, n; 54 bool if_insight(P q, int i, P a, P b) { 55 if(sig(q.cross(b, p[i])) <= 0 && sig(q.cross(b, p[i+1])) <= 0) rt false; 56 if(sig(q.cross(a, p[i])) >= 0 && sig(q.cross(a, p[i+1])) >= 0) rt false; 57 rt true; 58 } 59 void dfs(P q, int k, int m, P a, P b) { 60 if(vis[k]) rt ; 61 if(m == n) { ++ans; rt ; } 62 vis[k] = 1; 63 q = q.Mirror_P(p[k], p[k+1]); 64 for(int i = 0; i < n; ++i) { 65 if(i != k && if_insight(q, i, a, b)) { 66 P c , d; 67 if(sig(q.cross(b, p[i])) < 0) c = inset(b, q, p[i], p[i+1]); 68 else c = p[i]; 69 if(sig(q.cross(a, p[i+1])) > 0) d = inset(a, q, p[i], p[i+1]); 70 else d = p[i+1]; 71 72 dfs(q, i, m+1, c, d); 73 } 74 } 75 vis[k] = 0; 76 } 77 void solve() { 78 p[n] = p[0]; 79 ans = 0; 80 for(int i = 0; i < n; ++i) 81 dfs(q, i, 1, p[i], p[i+1]); 82 printf("%d\n", ans); 83 rt ; 84 } 85 int main() 86 { 87 while(scanf("%d", &n), n) { 88 q.in(); 89 for(int i = 0; i < n; ++i) p[i].in(); 90 memset(vis, 0, sizeof vis); 91 solve(); 92 } 93 return 0; 94 } View Code

轉(zhuǎn)載于:https://www.cnblogs.com/Duahanlang/p/3863845.html

總結(jié)

以上是生活随笔為你收集整理的csu1377Putter HOJ12816的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品呻吟 | 日本久久久久久久久 | 亚洲免费精品视频 | 亚洲久久影院 | 国产精品无码毛片 | 自拍偷拍另类 | 久久黄色一级片 | 亚洲一级片在线播放 | 国产一级做a爰片久久毛片男 | 欧美日韩不卡视频 | 欧美精品观看 | 日韩另类av| 成人黄色免费视频 | 91视频这里只有精品 | 中国毛片视频 | 午夜国产片 | 一级黄色大全 | 久久av网站 | 亚洲人网| 欧美一区二区三区在线观看视频 | 色人阁视频 | 伊人色网| 91娇羞白丝 | 一级v片| 俄罗斯精品一区二区三区 | 美人被强行糟蹋np各种play | 久久久久久亚洲精品中文字幕 | 69日本xxxxxxxx96 | 综合另类| 跪求黄色网址 | 国产婷婷一区二区三区久久 | 女女互慰吃奶互揉调教捆绑 | 中文字幕爱爱 | 狠狠老司机| 少妇按摩一区二区三区 | www.x日本| 欧美精品一级片 | 色婷婷av一区二区三区大白胸 | 欧美xxxx18国产 | 免费亚洲视频 | 天天干天天搞天天射 | 日本a级在线 | 麻豆福利影院 | 影音先锋在线看 | 人日人视频 | 四虎精品一区二区三区 | 久久精品无码一区二区三区 | 91免费在线观看网站 | 午夜视频福利 | av大全免费 | 九七伦理电影 | 亚洲小说区图片区 | 日韩精品在线观看AV | 黑人一级 | 色拍拍视频| 色呦呦网站在线观看 | 18成人免费观看网站 | 国产精品自拍视频一区 | 久久97精品久久久久久久不卡 | 亚洲乱妇老熟女爽到高潮的片 | h在线观看视频 | 日本天堂网在线 | 欧美黄色三级 | 国产女人水真多18毛片18精品 | 免费观看一区 | 色综合精品 | 手机av免费观看 | 成人性生生活性生交全黄 | 天天射天天舔 | 色婷婷综合视频 | 国产麻豆乱码精品一区二区三区 | 91精品啪在线观看国产线免费 | 快播怡红院| 三级a毛片| 一区二区三区四区在线视频 | 欧美熟妇另类久久久久久不卡 | 日韩a在线播放 | 2019最新中文字幕 | 国产在线999| 日本一本高清 | a级片毛片| 久久精品99久久久久久 | 九色tv | 看av网址 | 四虎精品在永久在线观看 | 性一交一黄一片 | 午夜精品久久久久久久久久久久 | 日韩视频精品一区 | 日韩欧美在线观看一区二区 | 999xxxx| 国产女主播一区二区三区 | 国产一区二区在线播放视频 | 亚洲国产电影在线观看 | 国产精品va| 男男巨肉啪啪动漫3d | 91香蕉视频黄 | 婷婷网五月天 | 日本福利一区二区 | 亚洲天天在线 |