計算方法參考了
這裡比較有意思的小技巧是算出和i計算k/i結果相同的最大的j值
d=k/i,j=k/d因為k%i可能存在餘數,而j=k/d求出的則是滿足k%j==0的j值
對於x屬於[i,j]範圍內,k%x的值逐漸減小(是按k/i為公差成等差數列直到0).
所以對於x屬於區間[i,j],所有y(y=d/x)值相同。
#include using namespace std;
typedef long long ll;
int main()
printf("%i64d\n",ans);
}return 0;
}
hdu 2516 取石子遊戲
題目 hdu 2516 取石子遊戲 思路 fibonacci nim 列舉前幾項,發現2,3,5是必敗態,不能說明什麼。對於當前的狀態,第一次不能全部取完,其餘的每次取的時候,不能超過前者上一次的兩倍。對於當前狀態n,最多能取的是 ceil n 3 1 和 前一狀態取的的兩倍 兩者間的最小值。然後這...
hdu2516 取石子遊戲
題目大意 桌子上有若干個石子,兩人輪流取。每次必須取走乙個,但不得超過前面的那個人取的數的2倍。拿到最後乙個石子的贏得遊戲。首先,這是一道博弈題,毋庸置疑,找到必敗點,這道題就會有突破 1,2,3是不可否人的必敗點 對於4,先手先取走1個的話,後手就不能取3個,所以還剩下3個,3是必敗點,所以4就是...
hdu2516 取石子遊戲
思路 找規律。先寫個暴力程式,然後發現凡是斐波那契數,都是後手贏,否則先手贏。我也不知道為什麼。暴力程式在 中被注釋。include include include include include include include include include include include inc...