【数位DP】Codeforces 1036C上品番号

ただ、ボードがあまりにも設定することができないかどうかを確認したかった......

結果することができます

1の#include <ビット/ STDC ++ H>
 2  の#define INF 0x3f3f3f3f
 3  の#define(I、B)について(iは= int型、iが= Bを<; ++ i)がために
 4  の#define 12月(I、B 、A)(iはBを= int型のために、I> = A; - I)
 5  の#defineファイル()freopenは( "C:/users/asus/desktop/v.txt"、 "R"、STDIN)を
 6  使用 名前空間はstd;
7  
8のtypedef 長い LL。
9  インラインLLのQR(){
 10      LL X = 0、F = 1char型のCH;
11      しばらく(!isdigit(CH = getchar関数()))であれば(CH == "- ')、F = - 1 12      のために(; isdigit(CH); X = X * 10 + CH- 48、CH = GETCHAR())。
13      リターンのX *はF;
14  }
 15 LLのD [ 20 ] [ 11 ] [ 4 ]。
16  INT [ 20 ]。
17 LL DFS(INT P、INTプリ、INT、W ブールLIM)
 18  {
 19      であれば(のp == 0リターン <= W 3;
20      であれば(W> 3戻り 0 ;
21      もし(LIM &&〜D [P] [前] [W]!)リターンD [P] [前] [W]。
22      int型のmx = LIM?[P]:9 23の      LL S = 0 24      (Iについては0、MX)S + = DFS(P- 1、I、+ W(I> 0)、LIM && I == MX)。
25      もし D [P] [事前] =の[W](LIM!)S。
26      リターン秒;
27  }
 28  LL解く(LL N)
 29  {
 30      INTLEN = 0 ;
31      一方、(N)[++ LEN = N%10、N / = 10 32      のmemset(D、 - 1はsizeofのD)。
33の     リターン DFS(LEN、1001 )。
34  }
 35  のint main()の
 36  {
 37      // ファイル()。
38      LL N = QR()、L、R。
39      (Iについて1、N)L = QR()、R = QR()のprintf(" %LLDする\ n "、解決(R)-solve(1- 1 ))。
40      リターン 0 ;
41 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/uuuxxllj/p/10954761.html