hdu5289多校第一場第二題

2021-07-04 01:36:51 字數 623 閱讀 4336

題目大意:給你一串數字,問有幾個連續的序其最大值與最小值之差不大於k。

借用雙指標的思想,i,j初始化都為0,然後j往後移動,遇到第乙個使區間不符合條件的位置停下,ans加上此時的區間數目,因為是連續的且以i為起點,所以區間只有j-i個;然後i往後移動,每移動乙個位置,加乙個j-i,直到與j那個位置有衝突的那一點,意思就是abs(a[j] - a[i]) > k的那一點,然後i再往後移動一位,繼續移動j,直到結束

參考了一位學長的**,用的multiset,set有自動排序的功能,就不用記錄此時的最大值和最小值了,j移動乙個點,就把那個點放入集合,如果符合條件,ans加上此時區間數目,如果最大值減去最小值大於等於k,就刪去a[i],然後繼續判斷,知道小於k的那一點,然後加上此時的區間數目。

ac**:

#include #include #include #include #include #include #define maxn 100010

#define mod 1000000007

using namespace std;

int a[maxn];

int main()

printf("%lld\n",ans);

}}

hdu 6299 多校第一場

題意 給出一些字串,重新組合,使括號的匹配數量最多 這道題場上沒能出,當時看了一眼,關於括號的,以為是個dp,就沒有再去做這道題。這道題事實上是個貪心,先把已經匹配好的括號數量統計出來。剩下的括號往兩邊堆,右括號往左邊堆,左括號往右邊堆。然後就是排序。左括號比右括號多的這種情況肯定要排在右括號比左括...

HDU6299(2018多校第一場)

bryce1010模板 兩個字串的排序可以分成四種情況 1 str1左少右多 vs str2 左多右少 str2排在str1前面 2 str1 左多右少 vs str2 左少右多 str1排在str2前面 3 str1 左少右多 vs str2 左少右多 按左括號的數量排序 4 其他情況按右括號的數...

2019HDU多校第一場

1002.operation 傳送 題意 給定乙個長度為 n 的數列,m 次操作,每次操作如下 0 l r 查詢區間 l,r 內若干個數的最大異或和。1 x 給數列末尾新增乙個數 x 資料範圍 1 n,m 5e5,1 a i 2 分析 開始直接考慮用線段樹維護區間線性基的並,然後每次查詢求區間線性基...