題目:
巴拉巴拉,沒有原題,懶得敲了
題意比較坑的地方在於,輸入的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...