Codeforces 91

4と7からだけなる数字のセット。以下これをLucky数として...。

A

Lucky数でceilingを計算することにして、AからBまでの数のceilingの合計値を答えよ、という問題。


Lucky数を求めておいて、飛び飛びにその区間をまとめて足すだけ。

B

文字列中の47という部分文字列を、左から順に44または77にindexに応じて変換していく操作を指定した回数行った結果を答えよ、という問題。


無限ループするパターンを潰して、後は愚直に前から順番に行うだけ。

C

1からNまでの整数のPermutationのうちK番目のものについて、Lucky数がLucky数番目にあるものの個数を答えよ、という問題。


Permutationの番号は凄い勢いで増えていき、せいぜい後ろの20個とかそれくらいを計算すれば、他は移動しない。後ろの方のPermutationを復元してやって、カウントするのと、前の移動しない部分にいくつLucky数があるのか合算すればおしまい。

D

区間が与えられるので、指定された回数だけ区間をずらして良いので、全部の区間に入るLucky数の数の最大値を答えよ、という問題。


最大のLucky数と最小のLucky数を決めて、全部の区間に入るように区間を移動させたときに、移動させて良い分量か調べる。もしダメなら、最大のLucky数を大きくしてもダメなので、次の最小のLucky数を調べる。TLEしそう...。

E

整数配列があり、連続領域に同じ値を足す操作と、連続領域にいくつLucky数があるか問い合わせる操作が与えられる。問い合わせの結果をすべて答えよ、という問題。


ありがちだけど解けない問題...。値は広義単調増加で、比較的小さい値で停止するので、それを使って工夫するんだろうか?