NOIP模擬題 Mushroom的區間

2022-08-17 10:39:21 字數 1317 閱讀 9702

【題目描述】

mushroom有一行數,初始時全部是0。現在mushroom有m個區間[l,r],他希望用以下操作得到新的序列。

從m個給定區間中選擇乙個區間[s,t],把區間中的數對應元素全部翻轉。(0變1,1變0)

請告訴mushroom他能得到多少區間。(模10^9+7)

【輸入格式】

第一行包含兩個整數n,m。表示n個數和m個區間。

接下來m行是所表示的區間。

【輸出格式】

乙個整數,表示能得到的區間數。

【樣例輸入】

3 31 1

2 23 3

【樣例輸出】

8【資料範圍】

對於30%的資料,n,m<=20

對於60%的資料,n,m<=100

對於100%的資料,n,m<=100000

【樣例解釋】

每個位置都可以單個修改,所以有8種可能。

此題ans=pow(2,m),但m需要處理,也就是有重複的就要刪去

情況1:

這種情況很明顯可以得出上面的邊需要刪去,m--

情況2:

這種情況也很明顯也可以得出上面的邊需要刪去,m--(考試的時候就沒有考慮到這個情況,3個tle,7個wa……)

於是就得到了很神奇的並查集演算法。(很神奇是不是,我也是這麼覺得)

只要兩點的father相等,說明先前已經連上,後來加的邊可以刪去

然後直接累乘就能過了。

1 #include2 #include3 #include4 #include5

using

namespace

std;

6int

n,m;

7const

int maxn=100005;8

long

long mod=1e9+7;9

intfa[maxn];

10int findfather(int

x)11

15int

main()

1633

long

long ans=1;34

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

3540 printf("

%i64d

",ans);

41return0;

42 }

NOIP模擬題 連通

給定乙個無向圖,請編寫乙個程式實現以下兩種操作 1 d x y,從原圖中刪除連線x和y頂點的邊。2 q x y,詢問x和y頂點是否連通。這也是連通問題,考慮用並查集解決。但是這是刪除的問題耶,怎麼辦?考慮將刪除變為連通,能不能將所有操作給反過來,從最後乙個操作開始處理。當然是可以的。include ...

Noip模擬題 山峰

description在n m的棋盤上不重複的填1到n m 如果乙個數字比周圍的八個數字大,那麼他就是乙個山峰。現在告訴你所有山峰的位置,問你填數的方案數mod 12345678 input 輸入第一行兩個數字 n m意義如題目描述。接下來n 行,每行 m個字元,表示非山峰,x 表示山峰。1 n 4...

NOIP模擬題 訂餐

題目描述 這個週末,joe 一如既往的拿出了外賣的點餐單。選單上從上到下列著 n 個菜,每個菜 joe 會列出乙個美味值。joe 這次希望從選單上連續地點 k 個菜,並且美 味值之和最大。但在計算美味值之和時,joe 有自己的一套計算方法 由於他會按照順序享受這 k 個菜,並且越吃越後面的菜他就越享...