Codeforces Round 897 (Div. 2)
A - green_gold_dog, array and permutation
題意:
給一個長度為n的序列A,需要我們構(gòu)造一個長度也為n的序列B,其中,序列B必須為1-n各個數(shù)的隨機順序序列,需要使我們Ai-Bi的不同的數(shù)字數(shù)量最多,比如A是1,2,3,如果B是1,2,3,那么差就是0,0,0,不同的數(shù)字個數(shù)只有1,如果B設(shè)置為3,2,1,則差為-2,0,2,不同的數(shù)字個數(shù)為3。需要輸出構(gòu)造的B序列
分析:
我們使最大的數(shù)減去最小的數(shù),第二大的數(shù)減去第二小的數(shù),以此類推,就能得到最多不同的數(shù)字,因為這樣設(shè)置之后大的減小的,差值就會進一步縮??;我們使用pair數(shù)組對應(yīng)位置。
代碼:

B - XOR Palindromes
題意:
題目告訴我們一個長為n的01序列,現(xiàn)在設(shè)定一個數(shù)字x是好的,當(dāng) 存在一個長為n的并且1的個數(shù)為x的01序列 能使這個序列和所給序列按位異或之后 所得的字符串為回文串,我們辨認從0到n哪些數(shù)字為好數(shù)字,輸出為一串01序列,第0位數(shù)字表示0這個數(shù)字的好壞,如果使1就是好,如果是0就是壞。
分析:
我們考慮到 對于原01序列串,如果對應(yīng)位置本來就相同了,那我們構(gòu)造的序列在這兩個位置也需要相同,同為1或者同為0都可以(即兩個0和兩個1),如果對應(yīng)位置不同,那我們構(gòu)造的序列在這兩個位置也需要不同,可以為01,也可以為10,反正都要一個0和一個1,如果n是奇數(shù),那么最中間那位數(shù)字是是0是1都可以,它就像一個隨機變量hh
所以我們就知道該如何寫這段程序啦,先對應(yīng)看對應(yīng)位置數(shù)字不同的地方有幾處,記錄下來,因為這是至少要有的1的數(shù)量,此時的數(shù)量為默認對應(yīng)位置數(shù)字相同都為0,然后我們可以依次增加2,這個是對應(yīng)位置數(shù)字相同的加的2,將0轉(zhuǎn)換為1,同時我們需要考慮到是否為奇數(shù),如果是奇數(shù)的話,每次都可以動態(tài)+1-1,因為這一位的地方是1還是0都可以
代碼:

C - Salyg1n and the MEX Game
先前吐槽:
c怎么是nmd交互題啊,第一次遇到交互題臉都被抽爛了,題目內(nèi)容感覺很簡單,在上網(wǎng)學(xué)習(xí)了交互提怎么寫之后再交了一發(fā),然后就是各種各種的懵逼,各種各種花式的錯誤,真是逆天,我直接一整個急急急,在本地編譯運行輸入輸出輸出都能對應(yīng)上,一但交上去就不知道在輸出實名東西,連整個vector有啥都給我輸出去了,我直接“??????啊?啊?”怎么能輸出這些呢,我就一個cout<<mmin啊,怎么輸出了0還不結(jié)束呢,明目輸出0我就return了,不過還好是現(xiàn)在遇見,至少不是賽場上遇見

題意:
愛麗絲和鮑勃在玩游戲,初始情況下,會告訴我們一個n和有n個數(shù)的數(shù)組,排列時非遞減排列的,可能重復(fù)元素;愛麗絲先開始,操作是插入一個不存在于數(shù)組中的數(shù),然后鮑勃再操作,他是可以刪除一個比剛插入的那個數(shù)小的數(shù),鮑勃不能行動或者行動了2*n+1步后會停止,此時他輸出-1;
愛麗絲的游戲目的是讓結(jié)束時整個數(shù)組中的MEX(最小不存在的自然數(shù))最大,鮑勃則是想讓他最小,游戲中我來扮演愛麗絲,輸出愛麗絲的操作
分析:
就如果序列中沒0的話愛麗絲就直接把0輸出結(jié)束游戲,其他的時候就第一次輸出最小的未出現(xiàn)的自然數(shù),然后再一步一步往前刪除,向0逼迫。
(靠,我就這個思路啊,我舅這么寫的,為啥永遠是錯的啊艸)
代碼:

CSDN:陪你一起cf
bilibili:acmer--沈幼楚
知乎:與你cf