description
定義乙個數字為幸運數字當且僅當它的所有數字都是4
44或者777。
比如說,47
、744、4
47、744、4
47、744
、4都是幸運數字而5、17
、467
5、17、467
5、17、4
67都不是。
假設現在有乙個數字d
dd,現在想在d
dd上重複k
kk次操作。
假設d
dd有n
nn位,用d1,
d2,.
..,d
nd_1,d_2,...,d_n
d1,d2
,..
.,dn
表示。
對於每次操作,我們想要找到最小的x(x
x (x < n) x(x,使得dx= 4d_x=4 dx= 4並且dx+ 1= 7d_=7 dx+1= 7。如果x xx為奇數,那麼我們把d xd_x dx和dx+ 1d_ dx+1 都變成444; 否則,如果x xx為偶數,我們把d xd_x dx和dx+ 1d_ dx+1 都變成777; 如果不存在x xx,那麼我們不做任何修改。 現在請問k kk次操作以後,d dd會變成什麼樣子。 input 第一行兩個整數n,k n,kn, k表示d dd的長度和操作次數。 第二行乙個數表示d dd。資料保證不存在前導零。 ( 1≤ n≤10 5,0≤ k≤10 9) (1\le n\le 10^5,0\le k\le 10^9) (1≤n≤1 05,0 ≤k≤1 09) output 乙個數字表示答案。 sample input 7 44727447 sample output solution 對於偶數字置的47 4747 ,若前乙個位置是4 44,那麼就會有迴圈447 →477 →447→. .. 447\rightarrow 477\rightarrow 447\rightarrow... 447→47 7→44 7→.. . 對於奇數字置的47 4747 ,若後乙個位置是7 77,那麼就會有迴圈477 →447 →477→. .. 477\rightarrow 447\rightarrow 477\rightarrow ... 477→44 7→47 7→.. . 只要有這兩種情況則不用進行後續操作,直接判斷剩餘操作次數的奇偶性即可,否則乙個個往後更新 時間複雜度o(n )o(n) o(n) code#includeusing namespace std;
const int maxn=100005;
int n,k;
char s[maxn];
int main()
else
if(!k)break;
} printf("%s\n",s+1);
return 0;
}
Newcoder 70 D 幸運數字 (組合數學)
description 定義乙個數字為幸運數字當且僅當它的所有數字都是4 44或者777。比如說,47 744 4 47 744 4 47 744 4都是幸運數字而5 17 467 5 17 467 5 17 4 67都不是。現在想知道在1.n1.n 1.n的第k kk小的排列中,有多少個幸運數字所...
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...