SSL 1127 方程的解數

2021-08-17 02:07:00 字數 743 閱讀 6284

我們可以把這個方程一半的加數移到右邊去,例k1x1p1+k2x2p2+k3x3p3=0移項變成k1x1p1+k2x2p2=-k3x3p3可以減少我們列舉x的次數,用雜湊表存左邊求出的情況有哪些,在右邊列舉的時候我們就可以判斷是否和左邊相等,然後加上次數就可以了。

#include#define maxn 4000003

using namespace std;

int z,a[maxn][2],n,k[7],p[7],m,ans;

int ksm(int x,int y)//快速冪

return s;

}int hash(int x)

int locate(int x)

void insert(int x)

void dfs(int x,int sum)

void bfs(int x,int sum)

else

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

bfs(x+1,sum+k[x]*ksm(i,p[x]));//列舉x

return;

}int main()

dfs(1,0);//求左邊的

bfs(n/2+1,0);//把這個方程分成兩段求,這裡求右邊

printf("%d",ans);

}

SSL1127 方程的解數

第1行包含乙個整數n。第2行包含乙個整數m。第3行到第n 2行,每行包含兩個整數,分別表示ki和pi。兩個整數之間用乙個空格隔開。第3行的資料對應i 1,第n 2行的資料對應i n。僅一行,包含乙個整數,表示方程的整數解的個數。3 15012 1212 178它的x xx需要從1 m 1 m1 m列...

ssl1127 方程的解數 HASH,dfs

我只是湊數的。第1行包含乙個整數n。第2行包含乙個整數m。第3行到第n 2行,每行包含兩個整數,分別表示ki和pi。兩個整數之間用乙個空格隔開。第3行的資料對應i 1,第n 2行的資料對應i n。僅一行,包含乙個整數,表示方程的整數解的個數。3 150 1 2 1 2 1 2聽真正的dalao講的 ...

方程的解數 SSL 1127 並查集

第1 11行包含乙個整數n nn。第2 22行包含乙個整數m mm。第3 33行到第n 2 n 2n 2行,每行包含兩個整數,分別表示kiki ki和p ipi pi。兩個整數之間用乙個空格隔開。第3行的資料對應i 1 i 1i 1,第n 2 n 2n 2行的資料對應i n i ni n。outpu...