暑假 D1 T2 咖啡的藝術

2021-09-30 14:25:36 字數 756 閱讀 6998

/*

掃瞄線 事件點

0集合(描述了每一種咖啡的溫度區間):(l,r) l:+1 r+1:-1

1集合(描述了每乙個查詢區間): (l,r) l: +i r+1:-i

top記錄n集合的差分字首和;now記錄q集合的差分字首和。

構造好事件點後按l(r)排一遍序;按順序往後掃。

(if cnt1>k) ans+=區間長度*i

*/#include

#include

#include

#include

using

namespace

std;

int n, k, q;

struct node

} haoyu[500050];

int main();

haoyu[++cnt] = (node);//記左不記右!!!

}for(int i = 1; i <= q; i++);

haoyu[++cnt] = (node);

}sort(haoyu+1, haoyu+cnt+1);//掃瞄線千萬記得排序!!!

int top = 0;

long

long now = 0, ans = 0;

for(int i = 1; i <= cnt; i++)

cout

<< ans << endl;

return

0;}

牛客提高D1t2 最小生成鏈

分析 我們發現可以把題目轉化為 有乙個序列a,問它的排列中相鄰兩個值異或的最大值的最小值 我們發現序列的構成一定是前幾位全是一樣的 從某一位開始左面全是0右面全是1 所以只要找到一種方案是的交界兩個值異或最小即可 把是0的插入01trie,每次拿是1的查詢異或最小值 include include ...

暑假 D2 T2 熱點

輸入 輸入檔案為hotspot.in。輸入的第一行為兩個正整數n,m。接下來的m行,每行描述乙個事件。輸出 輸出檔案為hotspot.out。輸出僅一行,n個整數,第i個數表示第i個人總共收到的動態數。輸入輸出樣例1 hotspot.in hotspot.out 2 8 s 1 s 2 l 1 2 ...

NOIp 2015 對D1T2的一些拓展研究

隨便口胡,錯誤一大堆,歡迎打臉 d1t2因為只有n條邊,所以只存在簡單環,那我們把這個問題複雜一下,每個人可能能告訴多個人,也就是邊的數量大於n,那麼這樣的話就會出現複雜環了。如果還是直接用tarjan求的話肯定是錯的,因為tarjan每次找的是一整個大環。在這裡想到了一種比較簡單的解法。我們每次選...