問題の説明
出力フォーマット
出力線は、整数の出力は、方程式の解の整数の数を示します。
サンプル入力
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(1、0 )。 62 のprintf(" %dの\ n " 、ANS)。 63 64 戻り 0 ; 65 }
-