【問題描述】
大cos在氯銫石料場幹了半年,受盡了勞苦,終於決定辭職。他來到表弟小cos的寒樹中學,找到方克順校長,希望尋個活幹。
於是他如願以償接到了乙個任務……
美麗寒樹中學種有許多寒樹。方克順希望校園無論從什麼角度看都是滿眼寒樹,因此他不希望有三棵甚至更多寒樹種在一條直線上。現在他把校園裡n棵寒樹的座標都給了大cos,讓他數出存在多少多樹共線情況。(若一條直線上有三棵或以上的樹,則算出現乙個多樹共線情況。)
【輸入】
輸入檔名為plant.in。
第1行乙個正整數n,表示寒樹棵數。
接下來n行,每行兩個非負整數x、y,表示一顆寒樹的座標。沒有兩顆寒樹在同一位置。
【輸出】
輸出檔名為plant.out。
輸出乙個整數,表示存在多少多樹共線情況。
【輸入輸出樣例】
plant.in
plant.out
0 01 1
2 23 3
0 11 0
【資料範圍】
對於30%的資料,有n≤10;
對於50%的資料,有n≤100;
對於100%的資料,有n≤1,000,0≤x,y≤10,000。
這道題純屬數學題,先o(n2)跑一道,把任意兩點之間的斜率求出來,再用o(n3)判斷三條個點是否共線,至於判重嘛。。就自己想一下了
(論常數的重要性)
code
1 #include2 #include3 #include4using
namespace
std;
5 ifstream fin("
plant.in");
6 ofstream fout("
plant.out");
7 typedef bool
boolean;
8 typedef class
pointpoint;
13 istream& operator >>(istream& in,point&p)
16 point *ps;
17int
n;18
int_x,_y;
19long
long ks[1001][1001
];20 boolean vis[1001][1001
];21
long
long result = 0;22
intmain()35}
36for(int i = 1;i < n - 1;i++)else46}
47}48}
49}50 fout<51return0;
52 }
NOIP模擬題 連通
給定乙個無向圖,請編寫乙個程式實現以下兩種操作 1 d x y,從原圖中刪除連線x和y頂點的邊。2 q x y,詢問x和y頂點是否連通。這也是連通問題,考慮用並查集解決。但是這是刪除的問題耶,怎麼辦?考慮將刪除變為連通,能不能將所有操作給反過來,從最後乙個操作開始處理。當然是可以的。include ...
Noip模擬題 山峰
description在n m的棋盤上不重複的填1到n m 如果乙個數字比周圍的八個數字大,那麼他就是乙個山峰。現在告訴你所有山峰的位置,問你填數的方案數mod 12345678 input 輸入第一行兩個數字 n m意義如題目描述。接下來n 行,每行 m個字元,表示非山峰,x 表示山峰。1 n 4...
NOIP模擬題 訂餐
題目描述 這個週末,joe 一如既往的拿出了外賣的點餐單。選單上從上到下列著 n 個菜,每個菜 joe 會列出乙個美味值。joe 這次希望從選單上連續地點 k 個菜,並且美 味值之和最大。但在計算美味值之和時,joe 有自己的一套計算方法 由於他會按照順序享受這 k 個菜,並且越吃越後面的菜他就越享...