這道題的題解講的非常好了已經,對於1~n數的排列子區間[l,r],使得區間中的數滿足連續的條件為:r-l=max(a[l~r])-min(a[l~r]);
(l,r為下標)
既然要使[l,r]為萌區間,那麼就要找到這個區間內的最大值mx與最小值mn,判斷是否滿足條件;
若不滿足條件,那麼需要將[mn,mx]缺少的數字都加入區間內(什麼意思呢,當前區間[l,r]內的數字不連續,我們要使區間元素變的連續起來就得使得從最小值到最大值期間的所有元素都出現,所以才有了擴充區間一說),然後計算新的區間的長度,繼續迭代,直到滿足條件。
#include#include#include#include#includeusing namespace std;
typedef long long ll;
const int inf=0x3f3f3f3f;
const double epos=1e-8;
const int maxn=1e5+7;
int a[maxn];
int pos[maxn];
int main()
if(l>r) swap(l,r);
int mx=-1,mn=inf;
while(r-l!=mx-mn)
for(int i=mn;i<=mx;++i)
}printf("%d %d\n",l,r);
return 0;
}
牛客寒假演算法基礎訓練營6
早知道這次題目這麼簡單就認真做了,最後一場沒心做,後面懶得想了,唉罪過罪過 1 煤氣灶 題目描述 小j開始打工,準備賺錢買煤氣灶。第一天,小j的工資為n元,之後每天他的工資都比前一天多d元。已知煤氣灶需要m元,求小j最少工作幾天才能買到煤氣灶。輸入描述 四個整數 n,m,d,x 分別表示小j第一天的...
牛客寒假演算法基礎訓練營3 G 糖果
傳送門 在乙個幼兒園裡面有n個小朋友,分別編號1,2,n1,2,n。在這些小朋友中有一些小朋友互為朋友關係,總共有 mathit mm對朋友。作為幼兒園老師,你想買一些糖果分給小朋友,你知道第i個小朋友想要至少想要ai個糖果。個糖果,否則他就會不開心。同時,如果乙個小朋友得到的糖果數小於他某個朋友得...
牛客寒假演算法基礎演算法訓練營2
1 座與重修費 題目描述 期末考試結束了,座發現很多人掛了大物,只能等著第二年重修,還要交400元的重修費。座突然想起有個學長和他講過,如果學校哪一年缺錢了,那一年的大物試卷就會特別難。現在 座有了所有人的成績,座想知道如果所有掛科的人都在第二年重修,學校能賺多少重修費?掛科是指一門課的分數小於60...