SDUT 3273 經濟節約(尺取)

2021-08-17 16:11:17 字數 990 閱讀 1460

problem description

由於經濟緊張,某國國王決定減少一部分多餘的士兵,這些士兵在邊界都有各自的管轄範圍。例如,士兵x 的管轄範圍[ax,bx]。我們定義:對於i號士兵,如果存在j號士兵的管轄範圍[aj,bj], aji且bij成立,那麼i號士兵就是多餘的。給出多個士兵的管轄範圍,問有多少個士兵是多餘的?

input 有多組資料,每組資料的第一行為乙個整數n(1<=n<=100000),下面n行每行包含兩個整數ai,bi,代表i號士兵的管轄範圍(0<=aii<=200000)。所有的ai是不同的,bi也是不同的。

output

輸出多餘士兵的個數。

sample input

5 

0 10

2 9

3 8

1 15

6 11

sample output
3

來自菜雞author:

這道題最開始看不懂題意,後來dalao講才知道,就是給定座標,找出一條座標軸線上管轄區域重複的士兵而已。把每個士兵的右端點按重大到小排序,排序後第乙個士兵的右端點座標就是管轄區的最右端,下邊各個士兵的右端點座標都被包括在其中。再往下比較左端點座標,記住第乙個士兵左座標,往後若比此座標大的說明被包括在內,為多餘的,計數。若小,則把左座標更新為更小的,依次尺取。

這裡邊唯一坑的乙個是座標相等也會被包括內,因此還錯了一發,慚愧。

ac**如下:

#include#include#includeusing namespace std;

struct f

f[100010];

bool cmp(struct f a,struct f b)

int main()

{ int n,s,i;

int min;

while(~scanf("%d",&n))

{s=0;

for(i=0; i來自小辣雞的第一篇部落格,it路才開始,要在膜拜dalao的不歸路上,負重前行啊。。。。。。

3 27學習內容

資料結構 表 一對一關係 線性表 操作不受限制的表 棧 只能在棧頂進行新增和刪除操作的線性表 操作受限 字串 是乙個操作不受限,型別受限制的線性表 佇列 只能在隊頭刪除,隊尾新增 操作受限 樹 一對多 網 多對多 線性表 特點 分配連續的空間,每個空間大小相同 節省空間,只存資料,不存位址 優點 按...

3 27 程式設計練習

pat1001 基礎題,幾乎就是練習下基本的知識語法 迴圈 條件輸入輸出。includeint main printf d n i return 0 pat b1032 基礎題 要考慮特殊情況及初始化賦值 比如從1還是0開始 不然就會卡在特殊的測試案例上 memset語法 memset 陣列名,值,...

IBM實習日記 3 27

今天上午進行了對tds的離線備份的指令碼,其實本來功能很簡單,但是要給那些未來將接管我們的服務期又從來沒有接觸過linux的管理員用還是乙個 問題。lihao的觀點是要把文件寫清楚,而我覺得這只是一方面,要把這個shell指令碼寫的互動性強一些,這樣在操作的時候會更加人性化。於是後來的腳 本就備寫的...