2の悪い状態。今、思考の自分の道を感じることは非常に問題です。
(私は今は私がHIJが表示されない、今日の試験を願っています)
A
最短診察室+貪欲、水60に遊びます。
しかし、実際には30個の以上のポイント欲張りなミスで、正のソリューション。
乗算の結果は$ Aの形で$ S \倍B ^ N + m個の\回にN回実行されなければならないと$ M $は和(係数と)、Bのパワーです。
つまり、$ M = \ FRAC {TS \時間B ^ n}は{A} $の$ Bが$ 16進数で記述することができている、もちろん、B ^がn MOD \ A = 0 $を\ $ TS \時間を設けました。
次いで、この数の係数bを加算し、バイナリ演算の数は、実際には、これはよく理解されています。
乗算の回数、直接上位開始から注目を解体$ 16進数の後に、対応する$のM $ Bが$を列挙する。
書式#include <cstdioを> する#include <iostreamの> の#include <CStringの> 名前空間stdを使用。 typedefの長い長いLL。 LL S、T、A、B、ANS = 1E15。 INTメイン() { scanf関数( "%LLD%LLD%LLD%LLD"、&S&T、&、&B)。 用(; S *今<= T; LL N = 0、今= 1からn ++、今* = B) { LLのM = TS *今、RESが= 0; (m個%のA)続行。 M / =。 今のLL C =; 一方、(M)RES + = M / C、M%= C、C / A = B。 RES + = N。 ANS =分(ANS、RES)。 } COUT << ANS << ENDL。 0を返します。 }