作為乙個神秘的電腦高手,farmer john 用二進位制數字標識他的奶牛。
然而,他有點迷信,標識奶牛用的二進位制數字,必須只含有k位「1」 (1 <= k <= 10)。 當然,每個標識數字的首位必須為「1」。
fj按遞增的順序,安排標識數字,開始是最小可行的標識數字(由「1」組成的乙個k位數)。
不幸的是,他沒有記錄下標識數字。請幫他計算,第n個標識數字 (1 <= n <= 10^7)。
第1行:空格隔開的兩個整數,n和k。
第n個標識數字
lzh顯然我們只關心1在**,那麼我們用是個數字記錄每個1的位置。每次從右往左找到第乙個可以向右移動的1,把右邊的1全部移到最右邊,這樣我們就得到了乙個比原來大1的二進位制序列。這樣我們就在o(nk)的時間內搞定了
#include
#include
#include
#include
#include
#include
#include
#define rep(i, st, ed) for (int i = st; i <= ed; i += 1)
#define drp(i, st, ed) for (int i = st; i >= ed; i -= 1)
#define erg(i, st) for (int i = ls[st]; i; i = e[i].next)
#define fill(x, t) memset(x, t, sizeof(x))
#define max(x, y) (x)>(y)?(x):(y)
#define min(x, y) (x)<(y)?(x):(y)
#define abs(x) (x)<(0)?(-(x)):(x)
#define inf 0x3f3f3f3f
#define n 1001
#define e 1001
#define l 1001
int n, k;
int pos[20];
inline int read()
int main(void)
while (-- n)
flag = true;
break;}}
if (!flag) }}
int cnt = k;
drp(i, pos[k], 1) else
}puts("");
return
0;}
2023年8月9日提高組T1 水題
小a和小a在玩乙個遊戲,這個遊戲是這樣的 現在有n個球,每次操作必須從中拿走k個球,不能操作者輸。因為小a的字典序比較大 小 所以小a先手。現在問你小a是否能贏。第一行乙個正整數t表示資料組數。接下來t行每行兩個正整數n和k。如果小a能贏,則輸出yes,否則輸出no。1 10 4 no hint 對...
2023年8月8日提高組T1 作業
小a作為乙個乖乖好學生,回到家後總是一絲不苟地完成老師布置的作業。這天,老師給小a布置了n項作業,每一項作業都有截止時間di和價值vi 你可以理解成每做完乙份作業就要快遞過去給老師,且快遞是不耗費時間的 每完成一項作業便可獲得其價值。但小a發現,自己每乙個單位時間內只能完成其中的一項作業,請你告訴小...
2023年8月8日提高組T1 作業
description 小a作為乙個乖乖好學生,回到家後總是一絲不苟地完成老師布置的作業。這天,老師給小a布置了n項作業,每一項作業都有截止時間di和價值vi 你可以理解成每做完乙份作業就要快遞過去給老師,且快遞是不耗費時間的 每完成一項作業便可獲得其價值。但小a發現,自己每乙個單位時間內只能完成其...