牛客練習賽13 幸運數字

2022-05-29 08:18:09 字數 1186 閱讀 5008

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

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

假設現在有乙個數字d,現在想在d上重複k次操作。

假設d有n位,用d1,d2,...,dn表示。

對於每次操作,我們想要找到最小的x (x < n),使得dx=4並且dx+1=7。

如果x為奇數,那麼我們把dx和dx+1都變成4;

否則,如果x為偶數,我們把dx和dx+1都變成7;

如果不存在x,那麼我們不做任何修改。

現在請問k次操作以後,d會變成什麼樣子。

第一行兩個整數n,k表示d的長度和操作次數。

第二行乙個數表示d。資料保證不存在前導零。

1 <= n <= 100,000

0 <= k <= 1000,000,000

乙個數字表示答案。
示例1

7 4

4727447

4427477
示例2

4 2

4478

4478

分析:找規律,發現「......447...」的時候,如果7前面的4的序號是偶數(這裡序號從1開始),

就變為「......477......」,下次找到4的時候,4的序號是奇數,就變成「......447...」,

這是乙個迴圈,這樣就好辦多了。。。

#includechar s[200000

];int

main()

i++;

}if(flag==0) break

;

if(s[i+2]=='

7'&&i%2==0)//

兩個7 ,477->447

if(i-1>=0&&s[i-1]=='

4'&&i%2==1

)

if(i%2==0) s[i+1]='4'

;

else s[i]='7'

; }

printf(

"%s\n

",s);

return0;

}

view code

牛客練習賽13 幸運數字

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

牛客練習賽13 幸運數字I II III

a幸運數字 時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 定義乙個數字為幸運數字當且僅當它的所有數字都是4或者7。比如說,47 744 4都是幸運數字而5 17 467都不是。現在,給定乙個字串s,請求出乙個字...

牛客練習賽13 A 幸運數字I

定義乙個數字為幸運數字當且僅當它的所有數字都是4或者7。比如說,47 744 4都是幸運數字而5 17 467都不是。現在,給定乙個字串s,請求出乙個字串,使得 1 它所代表的整數是乙個幸運數字 2 它非空 3 它作為s的子串 不是子串行 出現了最多的次數 不能為0次 請求出這個串 如果有多解,請輸...