input
本題包含若干組測試資料。
第一行兩個整數n,m,表示有n個區間,這n個區間內的天數,度度熊都簽到了;m表示m張補簽卡。
接下來n行,每行兩個整數(l[i],r[i]),表示度度熊從第l[i]天到第r[i]天,都進行了簽到操作。
資料範圍:
1<=n<=100000
0<=m<=1000000000
0<=l[i]<=r[i]<=1000000000
注意,區間可能存在交叉的情況。
output
輸出度度熊最多連續簽到多少天。
sample input
2 1
1 13 3
1 21 1
sample output
3
3
hint
樣例一:度度熊補籤第2天,然後第1天、第二天和第三天都進行了簽到操作。
樣例二:度度熊補籤第2天和第3天。
**:
#include#include#include#include#include#include#include#include#include#includeconst int maxn=1e5+5;
typedef long long ll;
using namespace std;
struct node
tmp[maxn],a[maxn];
ll d[maxn];
bool cmp(node x,node y)
}int main(void)
sum = max(sum,a[i+1].r-a[l].l+1+m-t1);
}printf("%lld\n",sum);
}return 0;
}
HDU6119 小小粉絲度度熊
思路 如果我們把覆蓋的區間和未覆蓋的分開,那麼我們可以構造出乙個序列 例如 7543598 粗體的表示中間沒有簽到的部分,而相鄰的部分就是已經連續簽到了的部分。那麼題目實際上就是我們可以單獨的覆蓋m天,然後怎麼樣覆蓋才能獲得最大的連續區間,然後求出這個連續的區間大小。嗯,根據範圍基本上確定是乙個nl...
hdu6119 小小粉絲度度熊
題目傳送門 思路 首先題目中說區間可能有交叉,所以第一步我們先處理一下區間重疊的情況把重疊的區間合併一下 第二步我們只需要尺取一下找最大區間就可以了 include include include include using namespace std const int maxn 1e9 7 st...
百度之星小小粉絲度度熊
input 本題包含若干組測試資料。第一行兩個整數n,m,表示有n個區間,這n個區間內的天數,度度熊都簽到了 m表示m張補簽卡。接下來n行,每行兩個整數 l i r i 表示度度熊從第l i 天到第r i 天,都進行了簽到操作。資料範圍 1 n 100000 0 m 1000000000 0 l i...