數學 牛客挑戰賽15C 約瑟夫問題

2021-08-19 22:14:16 字數 858 閱讀 7965

約瑟夫問題(約瑟夫問題),n個人,1 2報數 1出隊( 就是體育課的時候1 2報數 1出隊,2留下),q次詢問,每次求第x個人是第幾個出隊的

我很難過,具體數學白看了

就是當前總人數為奇數時,下一輪報數奇偶要轉換(原奇數出列變成偶數出列),注意細節。

(最近都沒1a過,難受

遞迴

#include

using

namespace

std;

typedef

long

long ll;

ll n,q,x;

ll fun(ll n,ll x,bool op)

if(op == 0 && x%2 == 1)

ll res = 0;

if(op) res = n/2,x = (x+1)/2;

else res = (n+1)/2,x = x/2;

if(n&1) op^=1;

return res+fun(n-res,x,op);

}int main()

}

迴圈

#include

using

namespace

std;

typedef

long

long ll;

ll n,q,x;

int main()

else

}//printf("ans = %lld\n",ans);

if(!fg) ans+=(x+1)/2;

else ans+=x/2;

printf("%lld\n",ans);

}}

Wannafly挑戰賽15 C 出隊

傳送門 解題思路 判斷x奇偶性,奇數出隊,偶數不出。由於隊伍成環,若上一次佇列人數為奇數,則下一次出隊時,隊伍一號點到的序號為偶數號,因此,我上一次出隊少出一人,和剩下的人組成新佇列,x 1 若上一次隊伍人數為偶數則無影響。不知道為什麼不用scanf輸入輸出就會出錯 includetypedef l...

牛客挑戰賽58

前i 1的二進位制相等,a的前n個數的前i 1位可以亂取,b的前n 1個數前i 1位也可以亂取,因為b的第n個數的前i 1異或可為任意值,所以sum1 2 i 1 n 2 i 1 n 1 2 i 1 2n 1 a的第i位為1且b的第i位為0 只要a的n數第i位中有乙個不為0的,a的第i位不為0,b的...

牛客Wannafly挑戰賽12 題解

傳送門 說是比賽題解,其實我只會前三題 後面的一定補 t1題意,在乙個長度為n的時間內,問如何選擇存款期限,使得收益最大。dp include include include include using namespace std define fi first define se second d...