普及題:
提高題:
根據題目的意思:其中乙個字串進行至少n次迴圈移位後,得到另外乙個字串。可以知道兩個字串的內容是相同的。
把字串想象成首尾相連,只用判斷這個字串順時針移動次數最少,還是逆時針移動的次數最少。
具體方法:取字串1的首字元str1[0],在第二個字串中尋找這個字元的位置index,順時針移動的次數就是index - 0。逆時針,把字串想象成圈的話,字串首字元的位置可以加到字串的最後。那麼次數就是str1.length() - index。比較哪種方式最小即可。
當然還有別的方法。自己會用就行。
#include
using
namespace std;
intmain()
} cout <<
min(index, n-index)
<< endl;
}}
乙個斐波那契數是由它前兩個斐波那契數相加得到的,這就說明,它也能夠由三個斐波那契數得到(因為前兩個數也是分別由另外兩個斐波那契數得到的)。所以有兩種方式分別是
f[n] = f[n-1] +f[n-2] = f[n-2] + f[n-3] + f[n-2]
或者f[n] = f[n-1] +f[n-2] = f[n-1] + f[n-3] + f[n-4]
題目要求輸出第乙個數最小的方案。f[n-4]最小。即要選擇 f[n-1] + f[n-3] + f[n-4]這乙個方案。
因為題目要求非0,所以當n等於4的時候需要特判,因為f[0]=0,當n小於4時沒有結果。
#include
using
namespace std;
long
long f[55]
;int
main()
int t, n, i;
cin >> t;
while
(t--)}
if(i <
4|| i ==50)
else
if(i ==4)
else
}}
人工智慧實驗室寒假集訓 Day4
普及題 提高題 zzulioj 1991 回形取數 按著題意模擬即可,有很多解決方法。我的思路是 從左上角開始,沿著直線向下走,走到邊界盡頭向左拐,繼續直走,走到邊界盡頭再左拐。直到所有路徑都走過 即左拐後也無法繼續走的時候 即可。可以用乙個陣列標記是否走過,或者用四個變數標記邊界。include ...
寒假集訓Day9
今天就是打比賽,然後也沒有訓練也沒寫什麼題出來,今天發現了乙個關於pow函式的有意思的事情,就是我int z int pow 169,0.5 算出來z 13 但是我int i 169,然後int z int pow i,0.5 算出來z 12,具體好像和計算機內部什麼資料讀取的形式有關,反正還挺複雜...
NEC人工智慧聯合實驗室成立
6月1日起,日本電氣株式會社 簡稱nec 與日本國立研究開發法人產業技術綜合研究所 簡稱產綜研 將在產綜研人工智慧研發中心聯合設立 產綜研 ec人工智慧聯合實驗室 該實驗室旨在通過共同合作的方式來加速人工智慧 簡稱ai 相關的研發。此實驗室是首個企業冠名的產綜研實驗室。通過該實驗室,nec與產綜研將...