UVA 1363 約瑟夫的數論問題

2021-09-25 12:57:28 字數 488 閱讀 1705

輸入正整數n和k(1<=n,k<=

根據紫書,假設k/i的整數部分等於p,則k mod i=k-i*p。於是從i,i+1,i+2,······,j,k除以它們的商的整數部分都相同,則k除以它們的餘數會是乙個等差數列。

這樣,可以在列舉i時把它所在的等差數列之和累加到答案中。這需要計算滿足[k/j]和[k/i]=p的最大j。

當p=0時這樣的j不存在,所以等差數列一直延續到序列的最後。

當p>0時j為滿足k/j>=p的最大j,即j<=k/p。

注意:當i>k時k mod i = k。即i>k的部分之和為k*(n-k)。

#includeusing namespace std;

typedef long long ll;

ll ans,n,k;

void f()

if(n>k)

}int main()

return 0;

}

UVa 1363 約瑟夫的數論問題

題目 題目鏈結 題意 給定n,k,求出 ni 1 k modi 分析 這題不難,但是我一直wa了七次,我的思路跟書上的是一樣的,一直找錯誤,一直wa,但一直找不到我 錯了,後來無奈,看了劉汝佳的 他實現起來沒有討論k和n誰小誰大,直接比較的,而我先討論了,n k的情況 因為這時候,對於所有的i k,...

約瑟夫環問題(數論)

約瑟夫環問題描述 n 個人圍成一圈 編號分別為1 n 從某人開始順序報號1,2,3 m凡報到m者的人出列,再接著從下乙個人開始數,輸出最終出列的人的編號。約瑟夫環是乙個數學的應用問題 已知n個人 以編號1,2,3.n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個...

數論三 約瑟夫問題

描述 小hi和小ho的班級正在進行班長的選舉,他們決定通過一種特殊的方式來選擇班長。首先n個候選人圍成乙個圈,依次編號為0.n 1。然後隨機抽選乙個數k,並0號候選人開始按從1到k的順序依次報數,n 1號候選人報數之後,又再次從0開始。當有人報到k時,這個人被淘汰,從圈裡出去。下乙個人從1開始重新報...