幸運數字 (思維)

2022-09-23 19:03:07 字數 935 閱讀 1495

幸運數字ⅳ(思維)。

定義乙個數字為幸運數字當且僅當它的所有數字都是4或者7。

比如說,47、744、4都是幸運數字而5、17、467都不是。

現在想知道在1...n的第k小的排列(permutation,中,有多少個幸運數字所在的位置的序號也是幸運數字。

第一行兩個整數n,k。

1 <= n,k <= 1000,000,000乙個數字表示答案。

如果n沒有k個排列,輸出-1。示例17 411 2 3 4 6 7 5示例24 712 1 3 4思路:因為15!>=1e10>k。所以最後的15個數的全排列就已經大於等於k了,所以前面的n-15個數字置是不變的。對於前面的n-15個數,因為幸運數隻由4和7組成,所以幸運數的數量其實是很少的,我們可以先構造出1e10以內的幸運數,然後算出n-15以內的幸運數的個數。對於後面的15個數排列,我們乙個乙個來判斷,具體看**。

其實這題挺像 hihocoder#1703?: 第k小先序遍歷.。?

#include

using namespace std;

const int max=50;

const int mod=1e9+7;

typedef long long ll;

vectorp,q;

ll f[100];

ll cla(int x,int y)

return ans;

}int check(ll x)//判斷x是否是幸運數

return 1;

}int solve(ll index,ll k)//index代表位置,k代表第k小的字典序

tot+=f[siz-1];//之前以q[0...i-1]開頭的排列數+以q[i]開頭的排列數》n>>k;

int ans=-1;

for(int i=1;i<=15&&i<=n;i++)

}cout<

python幸運數字判斷 幸運數字 小程式

問題描述 1 n個數字,每個數字的範圍 9999到9999,把這n個數字排序後,刪除奇數字的數,然後把剩餘的數按原位置排序後繼續刪除奇數字,直到剩餘乙個數為止,剩餘的數就是幸運數,輸出幸運數和它最初的位置。程式的輸入為兩個引數 數字的數量 n 具體的資料 以空格隔開 比如 6 66 666 6666...

幸運數字2

題目 定義乙個數字為幸運數字當且僅當它的所有數字都是4或者7。比如說,47 744 4都是幸運數字而5 17 467都不是。定義next x 為大於等於x的第乙個幸運數字。給定l,r,請求出next l next l 1 next r 1 next r include include include...

幸運數字(luckly)

題目描述 a國共有 nn 座城市,這些城市由 tex parse error misplaced 條道路相連,使得任意兩座城市可以互達,且路徑唯一。每座城市都有乙個幸運數字,以紀念碑的形式矗立在這座城市的正中心,作為城市的象徵。一些旅行者希望遊覽a國。旅行者計畫乘飛機降落在 xx 號城市,沿著 xx...