簡單思維題 小球

2022-04-04 23:11:13 字數 835 閱讀 8291

n個小球排成一列,第i個小球的顏色是ci。

定義小球i和小球j的距離為|(ci−cj)·(i−j)|,求所有小球之間距離的和。

第1行,1個整數n。第2行,n個整數c1,c2,...,cn。

1個整數,表示所求的值。

5

0 1 1 0 1

11

•對於60%的資料,n≤103;

•對於100%的資料,1≤n≤105,0≤ci≤1。

題目大意:略

思路:input是一串01串,所求為所有小球距離之和,這裡你可以看作是算每個小球與其餘剩下小球的距離之和(而且要除去重複算的),也可以看作是算每個小球(設第i個)與前i-1個小球的距離之和(這樣不會重複算),同理也有看作算每個小球(設為i)與後n-i個小球的距離之和。

這裡我們顯然採取第二種做法會更加簡單,因為這樣可以採取邊輸入邊處理的方式(詳見**),有利於後續處理。

總之,這樣我們的總體思路就是:對於輸入到的第i個數,若為1,則只需算其與之前的0的距離之和(每個1--0距離可以看作"當前1"至c1的距離減去0至c1的距離)(如圖)

若為0,同理只需算其與之前的1的距離之和。

ac**:

#include#define ll long long

intmain()

else

}printf(

"%lld\n

",ans);

return0;

}

總結:多思考結果該如何計算得到。

簡單思維題 末尾零

定義階乘 n 1 2 n 給定n,求n 末尾的0的個數。例如 當n 10,n 3628800,末尾0的個數為2。輸入共一行,乙個正整數n n 10 9 輸出共一行,包含乙個整數,表示對應答案。15 3 思路 n!可以寫成質因數分解的形式即n!2 x 3 y 5 z 顯然這裡面的乙個2與乙個5相乘能使...

31 簡單 小球

有 r 個紅色盒子和 b 個藍色盒子,還有 r 個紅色小球和 b 個藍色小球。每個盒子只能裝乙個小球,每個小球都要放在乙個盒子裡。如果把乙個紅色小球放在乙個紅色盒子裡,那麼得分是 c。如果把乙個藍色小球放在乙個藍色盒子裡,那麼得分是 d。如果把乙個紅色小球放在乙個藍色盒子裡,那麼得分是 e。如果把乙...

CSUST 2018 簡單題 題解(思維)

點集權值定義為所有點的權值和,還有如果這些點有連邊,那麼再加上那個邊權 emmm。特別像cf的思維題,根本想不到。我們將邊權分成均等的兩部分,分給它連線的兩個點,然後我們就成了選點問題,貪心即可。因為同時選了這兩個點,這個邊權值算,如果不同時選,相減就正好不算 include include inc...