[cf908G]新年とオリジナルの注文

F定義された状態が[I] [j]は[k]が[x]はxよりも大きいビットを有する数字のT I jの数を示し、k個のビットはxに等しいが、許容できない複雑さは、F [i]が[の状態を変更することが見出されてもよいですJ] [x]は、iはXプログラムに等しい桁数よりも大きいフロントJを有する迅速に転送することができます

1つの#include <ビット/ STDC ++ H>
 2  使用して 名前空間STDを、
3  の#define MOD十億七
 4  int型 N、ANS、F [ 1005 ] [ 1005 ] [ 11 ] [ 2 ]。
5  チャー S [ 1005 ]。
6  INT メイン(){
 7      のscanf(" %sの" 、S);
8      N =のSTRLEN(S)
図9は、     のためにint型 i = 0 ; iは< 10 ; iは++)[F 0 ] [ 0] [I] [ 0 ] = 1 10      のためにint型 I = 0 ; iがN <; Iは++ ){
 11          のint、P =(S [I] - ' 0 ' )。 
12          のためのint型 J = 0 ; J <= I; J ++ 13              のためのINT K = 0、K < 10 ; kは++ 14                  のためのINT L = 0、L < 2 ; L ++ 15                      のためのINT T = 0; T <= MAX(P、9 * 1); T ++ ){
 16                          F [I + 1 ] [j +(K <= T)] [K] [L |(T <P)] + = F [i]が[ J] [K] [L]。
17                          F [I + 1 ] [j +(K <= T)] [K] [L |(T <P)]%= MOD。
18                      }
 19      }
 20      のためにINT I = 1、S = 0 ; iが<= N; iは++ ){
 21個          のS =を(10LL * S + 1)%MOD。
22          のためにINT J = 1 ; J < 10 ; J ++ 23              のためのint型のk = 0 ; K < 2 ; kは++)ANS =(ANS + 1LL * S * F [N] [I] [J] [K])%MOD。 
24      }
 25      のprintf(" %dの" 、ANS)。 
26 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/PYWBKTDA/p/11375194.html