小w有m條線段,編號為1到m。
用這些線段覆蓋數軸上的n個點,編號為1到n。
第i條線段覆蓋數軸上的區間是l[i],r[i]。
覆蓋的區間可能會有重疊,而且不保證m條線段一定能覆蓋所有n個點。
現在小w不小心丟失了一條線段,請問丟失哪條線段,使數軸上沒被覆蓋到的點的個數盡可能少,請輸出丟失的線段的編號和沒被覆蓋到的點的個數。如果有多條線段符合要求,請輸出編號最大線段的編號(編號為1到m)。
第一行包括兩個正整數n,m(1≤n,m≤10^5)。
接下來m行,每行包括兩個正整數l[i],r[i](1≤l[i]≤r[i]≤n)。
輸出一行,包括兩個整數a b。
a表示丟失的線段的編號。
b表示丟失了第a條線段後,沒被覆蓋到的點的個數。
示例1
複製
5 3
1 34 5
3 4
複製
3 0
若丟失第1條線段,1和2沒被線段覆蓋到。
若丟失第2條線段,5沒被線段覆蓋到。
若丟失第3條線段,所有點都被線段覆蓋到了。
示例2
複製
6 2
1 24 5
複製
2 4
若丟失第1條線段,1,2,3,6沒被線段覆蓋到。
若丟失第2條線段,3,4,5,6沒被線段覆蓋到。
思路:差分,具體思路詳見**
#include#include#include#include#includeusing namespace std;
const int maxn = 1e5+100;
int n,m;
int l[maxn];
int r[maxn];
int vis[maxn];
int sum[maxn];
int main()
for(int i=1;i<=n;i++)
int ans=0;
for(int i=1;i<=n;i++)
for(int i=1;i<=n;i++)
int num=m;//編號
int cnt=0;
int ans1=n;//最壞的情況是每個點都被減一次
for(int i=1;i<=m;i++)
}cout
}
牛客練習賽34 C
題目描述 小w有m條線段,編號為1到m。用這些線段覆蓋數軸上的n個點,編號為1到n。第i條線段覆蓋數軸上的區間是l i r i 覆蓋的區間可能會有重疊,而且不保證m條線段一定能覆蓋所有n個點。現在小w不小心丟失了一條線段,請問丟失哪條線段,使數軸上沒被覆蓋到的點的個數盡可能少,請輸出丟失的線段的編號...
2018牛客練習賽34
c little w and segment coverage 官方題解 題意 給m個區間,把每個區間上的點都加1,然後問刪除哪乙個點後不會被覆蓋的點最少 我覺得這道題挺好的,就適合我們這些小白做,看題解能夠收穫很多 哇,線段樹原來還闊以統計區間內小於等於某個數x的個數有多少個呀,我太挫了,這個竟然...
little w and Sum 牛客練習賽34
include using namespace std typedef long long ll const ll maxn 1e5 5 ll s maxn int main ll num 0 ll flag 0 for ll i 0 i小w與tokitsukaze一起玩3ds上的小遊戲,現在他們遇...