題目描述
已知乙個n元高次方程: k1
xp11
+k2x
p22+
...+
knxp
nn=0
k 1x
1p1+
k2x2
p2+.
..+k
nxnp
n=
0其中:x1
,x2,
…,xn
x 1,
x2,…
,x
n是未知數,k1
,k2,
…,kn
k 1,
k2,…
,k
n是係數,p1
,p2,
…pn p1,
p2,…
pn
是指數。且方程中的所有數均為整數。
假設未知數1≤
xi≤m
1 ≤x
i≤
m, i=
1...
n i
=1...
n,求這個方程的整數解的個數。
輸入格式:
檔案的第1行包含乙個整數n。第2行包含乙個整數m。第3行到第n+2行,每行包含兩個整數,分別表示ki和pi。兩個整數之間用乙個空格隔開。第3行的資料對應i=1,第n+2行的資料對應i=n。
輸出格式:
檔案僅一行,包含乙個整數,表示方程的整數解的個數。
樣例輸入:
3樣例輸出: 資料範圍:150
1 2
-1 2
1 2
1<=
n<=
6 1
<=
n<=61
<=
m<=
150 1
<=
m<=
150時空限制:
1s 65536k
方程的整數解的個數小於2^31。
★本題中,指數pi(i=1,2,……,n)均為正整數。
簡單的hash如果n
<=
3 n
<=
3直接暴力處理 如果n
>
3 n
>3則把
n n
分成兩半,暴力處理出每一半,用hash表維護查詢
這裡建議使用金牌選手zzy推薦常數:
6974895
' role="presentation" style="position: relative;">6974895
6974895
code
#include
#include
#define psc 6974895
#define n 10
#define m 155
using
namespace
std;
struct node hash[psc];
int a[n][m], ans, k, p;
int main()
int ans = 0;
if (n == 1)
printf("%d\n", ans);
return
0; }
if (n == 2)
}printf("%d\n", ans) ;
return
0; }
if (n == 3) }}
printf("%d\n", ans);
return
0; }
if (n == 4)
hash[po].val = va;
hash[po].num++;}}
for (int i = 1; i <= m; ++i)
ans += hash[po].num;}}
printf("%d\n", ans);
return
0; }
if (n == 5)
hash[po].val = va;
hash[po].num++;}}
}for (int i = 1; i <= m; ++i)
ans += hash[po].num;}}
printf("%d\n", ans);
return
0; }
if (n == 6)
hash[po].val = va;
hash[po].num++;}}
}for (int i = 1; i <= m; ++i)
ans += hash[po].num;}}
}printf("%d\n", ans);
return
0; }
}
提高組訓練總結
很好。明天就是旅遊了。今天寫個總結來概括一下這周訓練的收穫吧。訓練從11.13開始至11.17共5天。這5天每天都有一套模擬題。日期模擬題 分數總結收穫 11.13 sc theme park 210構圖 精確,簡潔,方便 11.14 dream team 290bfs 繼承,判斷,遞進 11.15...
20201029CSP提高組訓練(走親戚)
目錄作業 年會小遊戲 公司搬遷 題目描述 小x家大年初三要去拜訪同村的所有親戚,恰好他家的所有親戚都住在一條東西走向的公路邊,而車的油量有限,車 子油量能行駛的距離為l,他對n個親戚隨機進行編號 1,2.n 假設馬路的中點為0,某個親戚的座標xi就為該親 戚到馬路中點的距離 設中點以東的座標為正數 ...
字元陣列訓練
2月7日下午,國家衛生健康委醫政醫管局監察專員郭燕紅介紹,建立了16個省支援武漢以外地市的一一對口支援關係,以一省包一市的方式全力支援湖北省加強病人的救治工作。請你設計乙個對口援建城市查詢程式,輸入乙個省份,輸出它的對口援建城市。你可以採用任意的字母形式的輸入輸出方式,比如 shan dong sh...