タイトル
ログインの問題
Bタイトル
最小列を介してのみ交換を交換し、その後、標的配列と比較するだけ貪欲
#include <iostreamの> する#include <cstdioを> する#include <cmath> の#include <CStringの> する#include <アルゴリズム> 使用して 名前空間をSTD。 typedefの長い 長いLL。 INT のmain(){ int型のT。 cinを >> トン。 一方、(t-- ){ ストリングS。 文字列のp; CIN >> S >> P; 文字列 T = S; int型 FA = 0 ; ソート(t.begin()、t.end()); にとって(INT iは= 0 ; I <s.size(); I ++ ){ もし(T [I] =!S [I]){ ため(INT J = s.size() - 1 ; J> I、J = - ){ 場合(S [J] == T [i])と{ スワップ(S [j]は、S [I])。 FA = 1 。 休憩; } } } もし(FA) ブレーク。 } もし、(S < P) COUT << S <<endl; 他の{ 裁判所未満 << " --- " << てendl; } } }
Cのタイトル
私たちは、文字列の内容を気にしないことがわかり、この質問の直接の暴力のタイムアウトの場合、ので、それは使用されないので、Xよりも大きい場合にのみ式で答えを計算する必要がある場合、その文字列は、xよりも大きい場合にすることができ
我々はプロセスで金型を取るために続けて、それはおそらく負の数につながることがあり、問題の経験をすることの年後、我々はより多くの場所プラスモジュラスを試す必要がありますので、私はエラーを防ぐ、弾性率は素晴らしいものであることを見出し、この質問をする必要があることに注意し注爆発int型
#include <iostreamの> する#include <cstdioを> する#include <cmath> の#include <CStringの> する#include <アルゴリズム> 使用して 名前空間をSTD。 typedefの長い 長いLL。 CONST LL MOD = 1E9 + 7 。 INT のmain(){ int型のT。 cinを >> トン。 一方、(t-- ){ ストリングS。 int型のx; CIN >> X >> S。 int型私は、 LL ANS = s.size()。 ための式(I = 0、I <X; I ++ ){ IF(s.size()> X){ ANS =(ANS +(ans-(I + 1)+ MOD)%MOD *(S [I] - [ 1 '))MOD%; // ANSはモジュロを継続するので、それが0未満であってもよい } 他{ IF(S [I] == ' 2 ' ) S + = s.substr(I + 1 ); 他 IF(S [Iは] == ' 3 ' ) S + = s.substr(I + 1)+ s.substr(I +1 ); ANS = s.size()。 } } COUT << ANS%MOD << ENDL。 } }