計蒜客 方程的解數

2021-08-17 16:34:51 字數 1184 閱讀 7927

蒜頭君在求解乙個 n

n 元的高次方程:

\displaystyle k_1x_1^+k_2x_2^+\ldots+k_nx_n^=0k1

​x1p

1​​+

k2​x

2p2​

​+…+

kn​x

npn​

​=0其中:x_1,x_2,\ldots,x_nx1

​,x2

​,…,

xn​ 是未知數,k_1,k_2,\ldots,k_nk1

​,k2

​,…,

kn​ 是係數,p_1,p_2,\ldots,p_np1

​,p2

​,…,

pn​ 是指數。方程中所有數都一定是整數。

假設未知數 1\leq x_i\leq m,i=1 \ldots n1≤

xi​≤

m,i=

1…n。你能幫蒜頭君算出這個方程的整數解個數嗎?

第一行輸入乙個整數 n(1 \leq n \leq 4)n(

1≤n≤

4)。第二行輸入乙個整數 m(1 \leq m \leq 150)m(

1≤m≤

150)

。第 3

3 行到第 n+2n+

2 行,每行輸入兩個整數,分別表示 k_i(|k_i| \leq 20)ki

​(∣k

i​∣≤

20) 和 p_i(1 \leq p_i \leq 4)pi

​(1≤

pi​≤

4)。兩個整數之間用乙個空格隔開。

輸出一行,輸出乙個整數,表示方程的整數解的個數。

樣例輸入

3

1001 2

-1 2

1 2

樣例輸出

104

逐次嘗試可能解 當存在解時  計數器+1     注意打表  pow多次運算會很慢:

ac:

#include using namespace std;

int n,m,a[10],b[10],value[10],sum=0,ans=0,mypow[160][5];

void fun()

}void dfs(int k)

for(int i=1;i<=m;i++)

}int main()

計蒜客 方程的解數 dfs

bug記錄 在解題時候,陣列範圍沒開夠 少1位 雖然在本地表面上可以ac,但在計蒜客終端上無法正確執行。當下標從1開始時,陣列範圍也要記得要開夠啊!include include using namespace std int n,m int ans 0 int p 5 2 int mem 151 ...

計蒜客 2019計蒜之道D

題意 現在給定你乙個字串 s ss 以及乙個整數 k kk,請求出 s ss的字典序最小的長度為 k kk的子串行。資料範圍 0 s 5000000 00 s 5000 000 樣例輸入 helloworld 5樣例輸出 ellld思路 假如我們先不考慮長度為k的限制我們應當怎麼做?我們以樣例為例子...

計蒜客 解碼

蒜頭君自己發明了一種字串的編碼方式,對於只含有大小寫字母的字串,可以用數字來表示括號裡面的串連續出現的次數 數字有可能超過一位數 比如a abcd 2等價於aabcdabcd。特別地,如果數字前面沒有括號,表示緊貼數字的前面的 乙個字母 出現的次數。比如abc2表示abcc。為了降低解碼的難度,蒜頭...