poj1186 方程的解數

2022-05-21 14:18:13 字數 1004 閱讀 5598

(題目鏈結)

已知乙個n元高次方程: 

其中:x1, x2,…,xn是未知數,k1,k2,…,kn是係數,p1,p2,…pn是指數。且方程中的所有數均為整數。 

假設未知數1 <= xi <= m, i=1,,,n,求這個方程的整數解的個數。

meet in the middle。移項,分兩部分搜尋,hash判斷兩次dfs的結果是否相同,統計結果。

// poj1186

#include#include#include#include#include#include#define mod 10000007

#define ll long long

#define inf 2147483640

#define pi 3.1415926535898

#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);

using namespace std;

struct hash h[100000010];

int cnt,ans,n,m,head[mod],p[10],k[10],pd[1010][1010];

void dfs1(int x,int w)

if (flag)

}else

for (int i=1;i<=m;i++) dfs1(x+1,w+k[x]*pd[i][p[x]]);

}void dfs2(int x,int w)

}else

for (int i=1;i<=m;i++) dfs2(x+1,w+k[x]*pd[i][p[x]]);

}int main()

for (int i=1;i<=n;i++) scanf("%d%d",&k[i],&p[i]);

dfs1(1,0);

dfs2(n/2+1,0);

printf("%d",ans);

return 0;

}

poj 1186 方程的解數

方程的解數 time limit 15000ms memory limit 128000k total submissions 6393 accepted 2198 case time limit 5000ms description 已知乙個n元高次方程 其中 x1,x2,xn是未知數,k1,k2...

poj 1186 方程的解數

題目描述如下 總時間限制 15000ms 記憶體限制 128000kb 描述 已知乙個n元高次方程 其中 x1,x2,xn是未知數,k1,k2,kn是係數,p1,p2,pn是指數。且方程中的所有數均為整數。假設未知數1 xi m,i 1,n,求這個方程的整數解的個數。1 n 6 1 m 150。方程...

POJ 1186 方程的解數

一道資料結構的水題。題意為給予乙個最多含六個未知數的方程k1 x1 p1 k2 x2 p2 k3 x3 p3 k4 x4 p4 k5 x5 p5 k6 x6 p6 0 求其整數解的個數。其中x1,x2.x6均大於等於1小於等於m m為輸入的乙個正數,最大150最小1 而且保證過程計算小於2 31。到...