ジャムストレーニングDay6

T1まだ直接のような百億九* 2%、その後、Bの番号を書き留め、法律ああを見つけます

1つの#include <ビット/ STDC ++ H>
 2  の#define MO十億七
 3  使用して 名前空間STDを、
4  チャー S [ 1000050 ]。
5  長い B、O。
6つの 長い 長いANS。
7  のint main()の
 8  {
 9      CIN >> S。
10      INT長=のSTRLEN(S)
11      のためにint型 I =長さ- 1 ; I> = 0 ; i-- 12      {
 13          もし(S [I] == ' A ' 14          O ++ 15      }
 16      であれば(O == 長さ)
 17      {
 18          COUT << " -1 " << ENDL。
19          リターン 0 ;
20      }
 21      のためにINT I =長さ- 1 ; I> = 0 ; i-- 22      {
 23          であれば(S [i]が== ' B ' 24          {
 25             B ++ ;
26              続け;
27          }
 28の          ANS + = B。
29          B = B * 2%のMO。   
30      }       
 31      のprintf(" %のLLD "、ANS%のMO)。
32 }
コードの表示

T2より楽しく、私は戦いをハングアップ

オリジナルのアイデアは、常に2進数を覚えておくことは、その後5回、5回の変換、5の配列、11のアライメントまで、理論があったことができますですが、私はハングアップ

正の解は、実際にはDPのですか?

1つの#include <ビット/ STDC ++ H>
 2  の#defineは長い長いちゃう 
 3  の#define MO十億七
 4  使って 名前空間STDを、
5  今のLL B、K、合計。
6  int型のp、CNT。
7つの LLのANS [ 2000 ]。
8  のchar [ 2050 ]。
9 LL DP [ 2000 ] [ 2000 ]。
10  ボイド解く(INT X)
 11  {
 12      のint点= X。
13      のint NUM = 0 14      一方、(X)
 15      {
 16          であれば(X%2 == 1 17          NUM ++ 18          X / = 2 19      }
 20の      ANS [ポイント] = ANS [NUM] + 1 21  }
 22  のint main()の
 23  {
 24      CIN >> A >> K。
25      INT長=のSTRLEN(A)。
26      もし(K == 1 27      {
 28          COUT <<長さ- 1<< てendl;   
29          リターン 0 ;
30      }
 31      であれば(K == 0 32      {
 33          COUT << 1 << ENDL。
34          リターン 0 35      }
 36      であれば(K> 5 37      {
 38          COUT << 0 << ENDL。
39          リターン 0 ;
40      }
 41      k-- 42      のためのint型 I =2 ;私は= < 1000 ; iが++ 43      (i)を解きます。
44      のためにint型 I = 0 ; iが長さを<; Iは++ 45      DPを[I] [ 0 ] = 1 46      のためにint型 I = 0 ; iが長さを<; Iは++ 47      のDPを[I] [I] = 1 48      のためにint型 i = 1 ; iが長さを<; I ++ 49      のためのINT J = 1 ; J <= I; J ++ 50      {
51          DP [I] [J] =(DP [I- 1 ] [J] + DP [I- 1 ] [J- 1 ])%のMO。
52      }
 53      のためのint型 i = 0 ; iは長さ<; iは++ 54      {
 55          であれば([I] == ' 0 ' 56          続けます57          のためにINT J = 0 ; J <長-I; J ++ 58          {
 59              であれば(ANS [今jは+] == k)の
 60              {
 61                 和+ = DP [長-I- 1 ] [J]。
62                  合計=合計%のMO。
63              }
 64          }
 65          今++ 66      }
 67      であれば(ANS [今] == K)
 68      合計++ 69      coutの<<和%のMO << ENDL。
70      リターン 0 ;
71 }
コードの表示

T3の練習は、サブツリー直径の一部、利用できる50理論ですが、私はハングアップ...

 

ソリューションは、今も2333コード最初の空の可能性が低いです

おすすめ

転載: www.cnblogs.com/Lbmttw/p/11309125.html