HNOI2005 湯姆的遊戲題解

2021-08-28 02:48:18 字數 1367 閱讀 4288

題目描述

湯姆是個好動的孩子,今天他突然對圓規和直尺來了興趣。於是他開始在一張很大很大的白紙上畫很多很多的矩形和圓。畫著畫著,一不小心將他的爆公尺花弄撒了,於是白紙上就多了好多好多的爆公尺花。湯姆發現爆公尺花在白紙上看起來就像乙個個點,有些點落在矩形或圓內部,而有些則在外面。於是湯姆開始數每個點在多少個矩形或圓內部。畢竟湯姆還只是個孩子,而且點、矩形和圓又非常多。所以湯姆數了好一會都數不清,於是就向聰明的你求助了。你的任務是:在給定平面上n個圖形(矩形或圓)以及m個點後,請你求出每個點在多少個矩形或圓內部(這裡假設矩形的邊都平行於座標軸)。

輸入輸出格式

輸入格式:

從檔案input.txt中讀入資料,檔案第一行為兩個正整數n和m,其中n表示有多少個圖形(矩形或圓),m表示有多少個點。接下來的n行是對每個圖形的描述,具體來說,第i+1行表示第i個圖形。先是乙個字母,若該字母為「r」,則表示該圖形是乙個矩形,這時後面將有4個實數x1,y1,x2,y2,表示該矩形的一對對角頂點的座標分別為(x1,y1)和(x2,y2);若該字母為「c」,則表示該圖形是乙個圓,這時後面將有3個實數x,y,r,表示該圓以(x,y)為圓心並以r為半徑。最後m行是對每個點的描述,其中每行將有兩個實數x,y,表示乙個座標為(x,y)的點。

輸出格式:

輸出檔案output.txt中包含m行,每行是乙個整數,其中第i行的整數表示第i個點在多少個圖形內部(當某點在乙個圖形的邊界上時,我們認為該點不在這個圖形的內部)。

輸入輸出樣例

輸入樣例#1:

3 4

r 1.015 0.750 5.000 4.000

c 6.000 5.000 2.020

r 6.500 7.200 7.800 9.200

3.500 2.500

4.995 3.990

2.300 8.150

6.900 8.000

輸出樣例#1:

1 2 0 1

一道比較簡單的題,我們可以將長方形和圓形記錄下來,然後對於每個點o(n)掃一遍就行了

上**

#include

using

namespace

std;

char type;

int n,m,sr,sc,tot;

double x,y,xx,yy,rr,minx,miny,maxx,maxy;

struct recr[505];

struct circ[505];

int main()

else

}for(int i=1;i<=m;i++)

return

0;}

HNOI2005 狡猾的商人

刁奼接到乙個任務,為稅務部門調查一位商人的賬本,看看賬本是不是偽造的。賬本上記錄了n個月以來的收入情況,其中第i 個月的收入額為ai i 1,2,3 n 1,n 當 ai大於0時表示這個月盈利ai 元,當 ai小於0時表示這個月虧損ai 元。所謂一段時間內的總收入,就是這段時間內每個月的收入額的總和...

HNOI2005狡猾的商人

傳送門 題目意思很簡單,意思是說給你一些區間和,要你判斷這些區間和是否合法。開始只想到了差分約束的方法,就是搞成字首和的形式 su m r sum l 1 w 且 su m r sum l 1 w 這樣利用spfa建圖,利用三角形不等式,即dis v dis x w i 每個條件建出sum r su...

HNOI2005 狡猾的商人

hnoi2005 狡猾的商人 time limit 10 sec memory limit 162 mb description 刁奼接到乙個任務,為稅務部門調查一位商人的賬本,看看賬本是不是偽造的。賬本上記錄了n個月以來的收入情況,其中第i 個月的收入額為ai i 1,2,3 n 1,n 當 ai...