問題 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轉移到兒子上,以便兄弟節點揹包時用,遞迴完後再統計到...