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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Poj 2284 That Nice Euler Circuit

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

人生第一道正兒八經(jīng)的計算幾何題。。。光消編譯錯誤就弄了老半天,果然是夠弱。。

題意大概是,給你N條線段,它們會構(gòu)成一個一筆畫的圖形,給你先線段的順序就是一筆畫的順序,線段可能相交但是不會重合

問你最后那個圖形可以將平面分成多少個區(qū)域(包括有窮區(qū)域和無窮區(qū)域)

顯然這里可以利用歐拉定理來求解,即平面上的點(diǎn)數(shù)+面數(shù)=邊數(shù)+2

那么問題就轉(zhuǎn)化為求最后的圖形有多少個點(diǎn)和多少條邊了。

大體思路是,通過枚舉線段來求出所有線段的交點(diǎn),加上原有題目告訴你的所有線段的起點(diǎn)和終點(diǎn),可以求得圖中所有的點(diǎn)的數(shù)量。

但是因?yàn)橛锌赡艹霈F(xiàn)三點(diǎn)共線的情況,這樣會導(dǎo)致多余的點(diǎn)的出現(xiàn),因此求出所有的點(diǎn)之后對點(diǎn)集做一次去重處理,可以利用STL里面的unique函數(shù),非常的方便

然后枚舉每一個新增的交點(diǎn),如果這個交點(diǎn)在一個線段之間,那么就會導(dǎo)致一條新邊的產(chǎn)生。

由此就完成了邊和點(diǎn)的統(tǒng)計

?

#include <cstdio> #include <algorithm> #include <cmath>#define INPUT_FILE "in.txt" #define OUTPUT_FILE "out.txt"using namespace std;typedef long long LL; const int maxn = 400; const double eps = 1e-10;void setfile() {freopen(INPUT_FILE,"r",stdin);freopen(OUTPUT_FILE,"w",stdout); }struct Point {double x,y;Point(double x = 0,double y = 0):x(x),y(y) {} };typedef Point Vector; Point v[maxn * maxn]; //頂點(diǎn) Point p[maxn];Vector operator - (Point a,Point b) {return Vector(a.x - b.x,a.y - b.y); }Vector operator * (Vector a,double p) {return Vector(a.x * p,a.y * p); }Vector operator + (Vector a,Vector b) {return Vector(a.x + b.x,a.y + b.y); }double dot(Vector a,Vector b) {return a.x * b.x + a.y * b.y; }int dcmp(double x) {if(fabs(x) < eps) return 0;return x < 0 ? -1 : 1; }bool operator < (Point a,Point b) {return a.x < b.x || (a.x == b.x && a.y < b.y); }double cross(Vector a,Vector b) {return a.x * b.y - a.y * b.x; }bool have_intersection(Point a1,Point a2,Point b1,Point b2) {double c1 = cross(a2 - a1,b1 - a1),c2 = cross(a2 - a1,b2 - a1);double c3 = cross(b2 - b1,a1 - b1),c4 = cross(b2 - b1,a2 - b1);bool ret = (dcmp(c1) * dcmp(c2) < 0) && (dcmp(c3) * dcmp(c4) < 0);return ret; }bool on_segment(Point p,Point a,Point b) {return dcmp(cross(p - a,p - b)) == 0 && dcmp(dot(a - p,b - p)) < 0; }Point get_intersection(Point a1,Point a2,Point b1,Point b2) {Vector v = a2 - a1,w = b2 - b1,u = a1 - b1;double t = cross(w,u) / cross(v,w);return a1 + v * t; }bool operator == (Point a,Point b) {return dcmp(a.x - b.x) == 0 && dcmp(a.y - b.y) == 0; }int main() {int n,kase = 1;while(scanf("%d",&n),n) {for(int i = 0;i < n;i++) {scanf("%lf%lf",&v[i].x,&v[i].y);p[i] = v[i];}int cnt_v = n - 1,cnt_f = 0,cnt_e = n - 1; n--; //判斷一下給定的線段是否有交點(diǎn)for(int i = 0;i < n;i++) {for(int j = i + 1;j < n;j++) {if(have_intersection(p[i],p[i + 1],p[j],p[j + 1])) {//找到交點(diǎn)了就添加到點(diǎn)集里面v[cnt_v++] = get_intersection(p[i],p[i + 1],p[j],p[j + 1]);}}}//特判三點(diǎn)共線的時候的狀態(tài)sort(v,v + cnt_v);cnt_v = unique(v,v + cnt_v) - v;//處理因?yàn)榫€段交點(diǎn)而新生成的線段for(int i = 0;i < cnt_v;i++) {for(int j = 0;j < n;j++) {if(on_segment(v[i],p[j],p[j + 1])) {cnt_e++;}}}printf("Case %d: There are %d pieces.\n",kase++,2 + cnt_e - cnt_v);}return 0; }

  

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

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

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

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

主站蜘蛛池模板: 亚州av片| 丁香婷婷视频 | 日韩中文免费 | 国久久久| 日本一区二区三区在线免费观看 | www婷婷av久久久影片 | 国产熟女高潮一区二区三区 | 成人免费毛片网站 | 性高潮视频在线观看 | 成人精品视频一区二区 | 国产乱码精品一区二区三区中文 | 99久久婷婷国产综合精品电影 | 久久精品视频偷拍 | 性猛交ⅹxxx富婆video | 亚洲爱爱av | 国产精品后入内射日本在线观看 | 五月天综合在线 | 台湾150部性三级 | 免费黄色欧美 | 四虎影库 | 欧美日韩生活片 | 91亚洲国产成人精品性色 | 一区二区视频观看 | 久久久久久av无码免费网站 | www夜色 | 男女激情四射网站 | 国产一级片av | 亚洲 欧美 日韩在线 | h视频在线观看网站 | 一二三区中文字幕 | 我要看免费毛片 | 农村村妇真实偷人视频 | 最近中文字幕 | 精品在线播放视频 | 四虎音影 | 色偷偷一区二区三区 | 无码av免费毛片一区二区 | 亚洲黑丝在线 | 91精品国产日韩91久久久久久 | 加勒比波多野结衣 | 野外做受又硬又粗又大视频√ | 亚洲一区二区中文 | 大香蕉视频一区二区 | 亚洲成人国产精品 | 九九爱视频 | 免费h漫禁漫天天堂 | 日韩免费av一区二区 | 在线亚洲欧美 | 色婷视频| 国产无遮挡一区二区三区毛片日本 | 国产精品扒开腿做爽爽爽a片唱戏 | 国产美女极度色诱视频www | 成人伊人 | 国产18页| 天天看天天做 | 黄色大片免费网站 | 玖玖国产精品视频 | 男人操女人视频网站 | 草久在线观看 | 在线观看jizz| 日本xxxxxxxxx69 | 亚洲二区一区 | 国产污污网站 | 国产主播在线一区 | 国产麻豆精品在线观看 | 综合亚洲视频 | 久久青草热 | 日日夜夜精 | 超碰极品| 成人28深夜影院 | 黄色资源网 | 爱情岛成人| 91精品国产麻豆国产自产在线 | 久久这里只精品 | 无码人妻精品一区二区三区99不卡 | 9999视频 | 欧美色成人| 亚洲一区二区自拍偷拍 | 国产一区免费看 | 伊人伊色 | 窝窝午夜理论片影院 | www.久久久.com | 五月天激情小说 | 国产在线看一区 | 国产精品v欧美精品v日韩 | 亚洲美女在线观看 | 伦理片一区二区三区 | 91成人黄色 | 国产人成在线 | 国产资源精品 | 国产综合视频一区二区 | 国产精品久久久久毛片 | 天天伊人网 | 久久99国产视频 | 日本a免费 | 欧美日韩不卡视频 | 久久在线看| 国产午夜精品无码 | 日韩视频免费看 |