簡述題意:
時間複雜度:o(t*n^2)
難度:noip
演算法:據說正解是 線段樹/樹狀陣列 維護 hash
但我是用迴圈水過的,逃......
我們只需要找到序列長度為3的即可!
我們考慮將讀入的這個點作為乙個等差序列子串行的中間元素x,
那麼我們列舉它左邊的元素a(x)(
因為我們還需要保證下標單調遞增,所以我們對所有已經讀入的數打標記,if(vis[x]^vis[j]),那麼說明應輸出「y」
注意:見**。
#include #include #include #include #include #include #include #define ll long long
#define n 10005
using namespace std;
bool vis[n];
int main()
}} fla==1?puts("y"):puts("n");
} return 0;
}
luogu P1505 國家集訓隊 旅遊
題面傳送門 第一次一遍過國集紫題。好激動。一看就是樹剖,只不過操作有點多。把每條邊的權值放在兒子節點即可。對於取相反數放懶標記即可。其他是樹剖正常操作。實現 include include define max a,b a b a b define min a,b a b a b using nam...
Luogu P2839 國家集訓隊 middle
首先 b,c 是必選的,然後選一段 a,b 的字尾和一段 c,d 的字首 都可空 對於中位數 這裡中位數採用這道題的定義 有個常見的處理方式 二分 mid,將 0,則說明 mid 的佔到了一半以上,即中位數 mid。採用這種處理方式,二分中位數,由於要中位數盡量大,所以要貪心,選字尾和字首使得大於等...
Luogu P1975 國家集訓隊 排隊
luogu 1975 國家集訓隊 排隊 quad 很明顯交換後能增加或減少的逆序對的個數只和這兩個數和這兩個數中間的數有關。quad 於是我們需要乙個資料結構能夠快速求出乙個區間內比乙個特定數值大 小的個數。quad 這個資料結構可以是分塊,這在分塊九講裡面有提到過,這裡就不再闡述具體操作過程了。q...