4888 路哥從不低頭

2021-09-16 14:12:28 字數 1682 閱讀 2325

問題 h: 路哥從不低頭

時間限制: 1 sec 記憶體限制: 128 mb

題目描述

路哥是雲南中醫學院大一新生,對路哥來說任何人任何物都只是他的道具而已。

過程不重要,只要最後勝利是屬於路哥的。

路哥每次出完手就把這鍋扔給別人。

而他自己,深藏功與名,事了拂衣去。

畢竟,深藏不露是一種卓越的才能。

某天,路哥被班主任叫去清理海報。

這裡有一塊寬為w,高為h的海報欄。以左下角為原點建立直角座標系。

第i張貼上去的海報左下角為(x1_i,y1_i),右上角為(x2_i,y2_i)。

撕去一張海報會導致所有覆蓋在其上的海報被同時撕掉(這個過程具有傳遞性,即如果a覆蓋b,b覆蓋c,那麼撕掉c會導致a和b均被撕掉)

一張海報如果可以被撕掉需要至少存在乙個角沒有被其他海報覆蓋。

海報a被海報b覆蓋當且僅當存在a和b的交面積大於0,並且a在b之前貼出。

由於路哥嫌麻煩,為了提高效率,路哥會一次性的撕掉盡可能多的海報。

現在請你幫路哥計算路哥一次最多可以撕掉多少張海報。

在張數相同的情況下,路哥會選擇更早貼出的海報。

輸入多組資料。

第一行三個整數w,h,n,分別為海報欄的寬和高,貼出的海報數量。

接下來n行,每行四個整數x1_i,y1_i,x2_i,y2_i。

(1 <= w,h <= 10000000, 1 <= n <= 1000, 0 <= x1_i,x2_i <= w, 0 <= y1_i,y2_i <= h)

輸出輸出兩個整數,分別是海報數量和撕去的是第幾張。

樣例輸入

6 7 4

0 0 4 4

1 0 3 4

1 4 4 6

0 0 3 5

樣例輸出

3 1思路就是判斷每一組海報是否存在覆蓋關係,最後再進行一次搜尋找出海報數量。注意多組輸入以及細節處理。

#include

typedef

long

long ll;

using

namespace std;

const

int n=

1e4+5;

struct data

a[n]

;vector<

int>b[n]

;bool

judge

(int i,

int j)

if(a[i]

.y2<=a[j]

.y2&&a[i]

.y2>=a[j]

.y1)

return

true;}

bool vis[n]

;int tmp=0;

void

fun(

int x)

}int

main()

for(

int i=

0;i)for

(int j=i+

1;j(judge

(i,j)

)int p=-1

,ans=0;

for(

int i=

0;iprintf

("%d %d\n"

,ans,p+1)

;//0~n-1最終答案要加1

}return0;

}

路哥從不低頭

時間限制 1 sec 記憶體限制 128 mb 題目描述 路哥是雲南中醫學院大一新生,對路哥來說任何人任何物都只是他的道具而已。過程不重要,只要最後勝利是屬於路哥的。路哥每次出完手就把這鍋扔給別人。而他自己,深藏功與名,事了拂衣去。畢竟,深藏不露是一種卓越的才能。某天,路哥被班主任叫去清理海報。這裡...

路哥從不低頭 dfs

時間限制 1 sec 記憶體限制 128 mb 提交 173 解決 14 提交 狀態 命題人 外部匯入 題目描述 路哥是雲南中醫學院大一新生,對路哥來說任何人任何物都只是他的道具而已。過程不重要,只要最後勝利是屬於路哥的。路哥每次出完手就把這鍋扔給別人。而他自己,深藏功與名,事了拂衣去。畢竟,深藏不...

6810 2020 10 05提高組模擬 路哥

輸入輸出樣例 1 說明 斷掉第 1,2 條邊或者只斷第 1 條邊均可恰好獲得 1 朵花朵,這兩種情況的概率的和為 0.5。樹形依賴揹包。選當前這個點必須先選父親節點。考慮設f i j 表示第i個點與第1個點聯通並且總和為j的概率。遞迴之前將父親的f轉移到兒子上,以便兄弟節點揹包時用,遞迴完後再統計到...