題目描述
曹操平定北方以後,公元208年,率領大軍南下,進攻劉表。他的人馬還沒有到荊州,劉表已經病死。他的兒子劉琮聽到曹軍聲勢浩大,嚇破了膽,先派人求降了。
孫權任命周瑜為都督,撥給他三萬水軍,叫他同劉備協力抵抗曹操。
隆冬的十一月,天氣突然回暖,颳起了東南風。
沒想到東吳船隊離開北岸大約二里距離,前面十條大船突然同時**。火借風勢,風助火威。十條火船,好比十條火龍一樣,闖進曹軍水寨。那裡的船艦,都擠在一起,又躲不開,很快地都燒起來。一眨眼工夫,已經燒成一片火海。
曹操氣急敗壞的把你找來,要你鑽入火海把連環線上著火的船隻的長度統計出來!
輸入輸出格式
輸入格式:
第一行:n
以後n行,每行兩個數:ai bi(表示連環線上著火船隻的起始位置和終點,-10^9<=ai,bi<=10^9)
輸出格式:
輸出著火船隻的總長度
輸入輸出樣例
輸入樣例#1:
3 -1 1
5 11
2 9
輸出樣例#1:
11 說明
n<=20000
如果ai=bi是乙個點則看作沒有長度
思路:這比染色簡單多了。
讀入後按起點排序(即離散),記錄begin end。
1.如果a[i].l>end 則 累加答案,更新。
2.如果a[i].l<=end則繼續列舉。
**:
#include
#include
#include
#include
using
namespace
std;
int n;
struct arr
a[22222];
int cmp(arr a,arr b)
sort(a+1,a+n+1,cmp);
int begin=a[1].l,end=a[1].r,ans=0;
for(int i=2; i<=n; i++)
else
}printf("%d",ans+end-begin);
}
洛谷P1496 火燒赤壁
曹操平定北方以後,公元208年,率領大軍南下,進攻劉表。他的人馬還沒有到荊州,劉表已經病死。他的兒子劉琮聽到曹軍聲勢浩大,嚇破了膽,先派人求降了。孫權任命周瑜為都督,撥給他三萬水軍,叫他同劉備協力抵抗曹操。隆冬的十一月,天氣突然回暖,颳起了東南風。沒想到東吳船隊離開北岸大約二里距離,前面十條大船突然...
洛谷 P1496 火燒赤壁
曹操平定北方以後,公元208年,率領大軍南下,進攻劉表。他的人馬還沒有到荊州,劉表已經病死。他的兒子劉琮聽到曹軍聲勢浩大,嚇破了膽,先派人求降了。孫權任命周瑜為都督,撥給他三萬水軍,叫他同劉備協力抵抗曹操。隆冬的十一月,天氣突然回暖,颳起了東南風。沒想到東吳船隊離開北岸大約二里距離,前面十條大船突然...
P1496 火燒赤壁
用離散化,區間問題。當然,可以用模擬,但是資料強一點,模擬就不過了!1.用陣列x儲存所有起點和終點。2.對x進行公升序排序。3.用unique 對x進行去重。4.進行標記,遍歷所有的起點和終點,找它們在離散陣列x中排在第幾位。技巧 add陣列,標記了離散陣列x,用於區別起點和終點。並用於標記區間是否...