智算之道初賽第二場 高校組 情報戰

2022-05-01 13:30:08 字數 2379 閱讀 1633

情報站

現在我方已經查明,敵人通訊所使用的加密方式依賴於乙個長度為 nn 的數列,只要得知了這個數列中每個數的值,我方便可破解敵方的通訊。

通過深入敵人內部的內線人員的艱苦奮鬥,我方逐漸獲得了一些有用的情報,通過這些情報,整個數列正在被不斷地破解。

先後有 mm 條情報被得知,每條情報是以下兩種情況之一:

每得知一條情報,我方都試圖破解數列中元素的值

作為情報部門核心技術人員的你,請程式設計實現如下功能:每次得知一條新情報,你都要計算當前已經能夠確定出數列中的多少個數了

你比較笨,對於情況 2 這種情報,只能在已知其中乙個數的情況下推出另乙個數,不能通過若干情況 2 的情報列方程求解

第一行,兩個正整數 n,mn,m

接下來 mm 行,每行的第乙個數是 typetype

輸出 mm 行,每行包含乙個非負整數,第 ii 行的非負整數表示在得知了前 ii 條情報之後數列中已經能夠確定的數的數量

對於 20\%20% 的資料,1 \le n,m \le 101≤n,m≤10,且只有第一種情報

對於 50\%50% 的資料,1 \le n,m \le 50001≤n,m≤5000

對於 100\%100% 的資料,1 \le n,m \le 3\times 10^51≤n,m≤3×105

可能會有重複的情報,也可能出現 x=yx=y 的情況

5 4

1 11 2

2 2 3

2 1 3

123

3

我當初寫這題的時候,沒有考慮到並查集,以為只是簡單的模擬題,一提交就爆0了,認真一看似乎和並查集有關,但是由於注意的細節太多,直到比賽結束**還沒有除錯完。

這題的並查集最重要的地方是維護現在有集合,和未知集合,未知集合又分為兩種:

第一種是:未知和未知是乙個集合,且其中乙個數可以是已知也可以是未知的,這也要是分開討論的;

第二種是:單個未知,該未知也可以是已知也可以是未知,這也是需要討論的;

***注:以下**是在智算之道上提交的並且是正確,但是並沒有在其他平台上測試。因此並不能保證是正確的**,且該**是本人自己想,自己的寫的,也不能保證該**是最優的。

**:

#includeusing

namespace

std;

const

int n=1e6+100

;int fa[2*n],size[n],num[n];

intn,m,len;

sets;

inline

intread()

while(c>='

0'&&c<='9'

)

return x*f;

}int find(int x)//

查詢父親

void merge(int x,int y)//

合並且累加個數

return;}

intmain()

for(int i=0;i)

else

//如果不同,合併兩個數的個數。

}else

else

if(a==b)//

如果相同但又不存在於當前所擁有的數當中,那麼當前的個數依舊不變,仍然是當前集合的個數

else

//如果不同,有兩種情況

else

//第二種:這兩個數都不是當前所擁有的,但也要把他們合併,萬一在下一次的操作一中會出現該兩數的其中乙個,那是的個數不是多一,而是多二。 }}

}return0;

}

給出兩個我自己想的測試點,因為我是靠這兩個測試點過的這題,答案被我清除了,原因是這樣的好複製(嘿嘿嘿~),所以答案需要自己想的。

測試點一:

12161

1122

1213

2132

2322

2233

2112

4525

6152

7829

9289

18

測試點二:

123182

1222

3234

2452

5626

7111

2131

4151

6171

8289

29102

1111212

12

望大佬們海涵。

智算之道初賽第二場題解

共 10 個測試點 每個測試點 10 分 每個測試點限時 1 秒 執行記憶體上限 512mb小明正在上樓梯,當小明逐漸接近某層樓的時候,這層樓的聲控燈檢測到小明的腳步聲便會亮起來,當小明逐漸遠去的時候,聲控燈由於一段時間內沒檢測到聲音又會滅下去。由於小明是勻速上樓的,而且他的速度把控得剛剛好,腳步聲...

水杯 模擬 智算之道初賽高校組第三場

傳送門 共 20 個測試點 每個測試點 5 分 每個測試點限時 1 秒 執行記憶體上限 512mb 小小 d有乙個能顯示溫度的杯子.其原理是杯蓋上的乙個感測器.只有在杯子內的水的體積大於等於某個數 l 的時候感測器才能顯示水溫,並且如果水溫不在 a,b 內感測器也無法顯示水溫.注意,這裡溫度對水的體...

2018計蒜之道 初賽 第二場

a.推薦系統 直接暴力dp就行 賽後沒儲存orz.找不到了 b.阿里巴巴的手機 商 簡單 直接拿map暴力就行 include include include include include include include include include include include includ...