停止の総旅客ニンニク式(DFS)

 

問題の説明

出力フォーマット

出力線は、整数の出力は、方程式の解の整数の数を示します。

サンプル入力

3 
100 
1  2 
- 1  2 
1  2

サンプル出力

104

 

1の#include <stdio.hの>
 2の#include < ストリング・H>
 3の#include <iostreamの>
 4の#include < ストリング >
 5の#include <math.h>の
 6の#include <アルゴリズム>
 7の#include <ベクトル>
 8#含む<スタック>
 9の#include <キュー>
 10の#include < セット >
 11の#include <地図>
 12の#include <sstream提供さ>
 13  のconst  int型 INF = 0x3f3f3f3f 14 typedefの長い 長いLL。
 const  int型 MOD = 1E9 + 7 16  CONST  ダブル PI = ACOS( - 1 )。
17の CONST  ダブル EPS = 1E- 8 18  の#defineバグCOUT << "---------------------" << ENDL
 19  CONST  INT MAXN = 1E5 + 10 20  使って 名前空間はstdを、
21  
22  のint K [ 5 ]、P [ 5 ]。 
23  整数N、M、ANS。
24 LL POW [ 150 ] [ 5 ]。//POW [I] [J]表示I的J次方
25  
26  ボイドのinit()// 打表
27  {
 28      のためにINTは iは= 1 ; I <= 150 ; I ++ 29      {
 30          POW [I] [ 0 ] = 1 ;
31          のためにINT J = 1 ; jは<= 4 ; J ++ 32          {
 33              POW [I] [J] = I * POW [I]、[J- 1 ]。
34          }
 35      }
 36  }
 37 
38の ボイド DFS(INT ステップ、LLの合計)
 39  {
 40      であれば(ステップ> N)
 41      {
 42          であれば(和== 0)ANS ++ 43          リターン;
44      }
 45      のためにINT iは= 1 ; iが<= M; I ++ 46          DFS(ステップ+ 1、和+ K [ステップ] * POW [I] [P [ステップ]])。
47  }
 48  
49  のint main()の
 50  {
 51      の#ifdefデバッグ
 52     freopenは(" SAMPLE.TXT "" R " 、STDIN)。
53      #endifの
54      ios_base :: sync_with_stdio();
55      cin.tie(NULL)。
56      
57      のscanf(" %D%D "、&​​N、&M)。
58      のためにINT iは= 1 ; iが<= N; I ++ 59          のscanf(" %D%D "、&​​K [i]は、&P [I])。
60      のinit(); // 不要忘了
61の      DFS(10 )。
62      のprintf(" %dの\ n " 、ANS)。
63      
64      戻り 0 ;
65 }

 

 

-

おすすめ

転載: www.cnblogs.com/jiamian/p/12174333.html