約瑟夫問題(約瑟夫問題),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...