2020網易互娛筆試C題

2022-09-01 14:45:19 字數 978 閱讀 3017

題目:

巴拉巴拉,沒有原題,懶得敲了

題意比較坑的地方在於,輸入的v對應的是第i個v

如果第一行的原序列是231

第二行的v序列是159

則對應上去就是591

一開始死在這個地方了

接下來討論解法:

n分奇偶討論

n為偶數時,顯然直接交換1和2,3和4,....n-1和n(這邊的數字指的是位置,不是序列對應的值)

下面的abs表示和原序列的對應距離

這樣的話每個數和原本的abs距離都是1,所以就是sumv

n為奇數時,其實和n為偶數差不多,就是兩兩交換,但是這樣必然會多出乙個,所以只要選擇其中三個進行錯排就好了

假設乙個序列為12345,那麼錯排的只能是123或者345,這樣才能保證剩下的兩兩是相鄰的,如果選了234,1和5交換代價太大了

那麼我們考慮123如何去錯排

錯排結果有2種

231,312

231中,原序列的1abs為2,其他兩個都為1

312中,原序列的3abs為2,其他兩個都為1

所以我們必定可以構造乙個錯排後abs序列為只有1個2,其他都是1的情況

比如12345

可以23154,31254,21534,21453

這樣的話其實就是sumv+那個abs為2的v值

我們可以發現,那個長度為3的序列,第乙個和第三個都是在奇數字上,1,3,5

所以只需要暴力求出奇數字上最小的v,然後加上sumv就行了。

**:

int index[25

];int a[25

];int

main()

int sum=0

;

intv;

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

if(n&1

)

else

cout

}return0;

}

2018網易互娛筆試1 花磚拼接C

解題思路 1 找出需要拼接的整體花磚的個數q m n 2 找出剩餘拼接的邊長p m n,則兩邊需要增加的長度分別為x p 2,因為花磚邊長只能按照單位1分割,故此處的餘量p只能為偶數 3 若p為偶數則直接計算 若p為奇數,則p p n 即需要將一塊花磚的邊長加原始餘量 同時q q 1 需要的整體花磚...

2017網易互娛筆試題 括號匹配

題目描述 對於一行 字串 裡面可能出現大括號 中括號 和小括號 請程式設計判斷改行 的括號巢狀是否正確。printf hello netease 等都是括號使用的正確方法,print hello netease 則是錯誤的範例。輸入描述 輸入包含一行,為一行包含括號的字串 字串長度不超過1000 輸...

2019網易互娛8 9筆試

逐級扣稅,關鍵 四捨五入 int x 0.5 問題 c 在本地編譯通過,在牛客不通過 import sys def shui x if x 5000 return 0 if x 5000 and x 8000 return x 5000 0.03 if x 8000 and x 17000 retu...