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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Codeforces Round #587 C. White Sheet(思维+计算几何)

發(fā)布時(shí)間:2024/9/15 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codeforces Round #587 C. White Sheet(思维+计算几何) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

傳送門

?題意

先給一個(gè)白矩陣,再兩個(gè)黑矩陣

如果兩個(gè)黑矩陣能把白矩陣包含,則輸出NO

否則輸出YES

?思路

計(jì)算幾何題還是思維題呢?

想起了上初中高中做幾何求面積的題

這個(gè)就類似于那樣

包含的話分兩種情況討論,其他的不包含

①白矩形在一個(gè)黑矩形內(nèi)部

  這種情況直接判斷邊界就可以

②白矩形在兩個(gè)黑矩形組合的圖形內(nèi)部

  • 首先這個(gè)情況的前提是兩個(gè)黑矩形必須能連接起來
  • 白矩形和兩個(gè)黑矩形分別會有重合,重合的地方可能會在此重合,

  例如 白矩形(1 1 4 2)? ?黑1矩形(1 0 3 4)? 黑2矩形(2 0 5 3)

    

? ? ? ?被黑1黑2矩陣聯(lián)合包含,與黑1相交面積是粉色區(qū)域,與黑2相交面積是綠色區(qū)域

? ? ? ?但是粉綠色區(qū)域的多算的,白矩陣面積=粉色面積+綠色面積-粉綠面積

?代碼

1 #include<bits/stdc++.h> 2 using namespace std; 3 #define ll long long 4 struct node 5 { 6 ll xl,yl,x2,y2; 7 }a[4],p; 8 9 bool CH(node x,node y )//重合 10 { 11 if(x.xl>=y.xl&&x.x2<=y.x2&&x.yl>=y.yl&&x.y2<=y.y2) 12 return true; 13 return false; 14 } 15 ll XJ(node a,node b)//相交 16 { 17 ll cx1=max(a.xl,b.xl); 18 ll cy1=max(a.yl,b.yl); 19 ll cx2=min(a.x2,b.x2); 20 ll cy2=min(a.y2,b.y2); 21 if(cx1>cx2||cy1>cy2)//不相交 22 23 p=node{cx1,cy1,cx2,cy2};//相交矩形 24 return (cx2-cx1)*(cy2-cy1);//相交面積 25 } 26 27 ///包括NO 不包括YES 28 int main() 29 { 30 for(ll i=1;i<=3;i++) 31 cin>>a[i].xl>>a[i].yl>>a[i].x2>>a[i].y2; 32 33 if(CH(a[1],a[2])||CH(a[1],a[3]))///重合在內(nèi)部 34 { 35 puts("NO"); 36 return 0; 37 } 38 39 if(XJ(a[2],a[3])<0) ///2 3不相交 40 { 41 puts("YES"); 42 return 0; 43 } 44 45 if(XJ(a[2],a[3])>=0) ///2 3相交 46 { 47 ll s1=XJ(a[1],a[2]); 48 node p1=p; 49 ll s2=XJ(a[1],a[3]); 50 node p2=p; 51 ll s=(a[1].y2-a[1].yl)*(a[1].x2-a[1].xl); 52 s+=max(1ll*0,XJ(p1,p2));///重合處會多算 53 54 if(s1+s2==s) 55 { 56 puts("NO"); 57 return 0; 58 } 59 else 60 { 61 puts("YES"); 62 return 0; 63 } 64 } 65 } 66 67 /** 68 1 1 4 2 69 1 0 3 4 70 2 0 5 3 71 */ View Code

?

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

總結(jié)

以上是生活随笔為你收集整理的Codeforces Round #587 C. White Sheet(思维+计算几何)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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