題目傳送門:
題目分析:一道腦洞很大的題……這要是在考場上我絕對暴力高精度水50走人。
要判斷乙個很算式的結果是不是0,而且算式中的數字都很大,我們可以將算式中的數字模幾個大質數,看算出來的結果是否都為0。於是這題我們將每個係數模幾個大質數,再暴力將[1,m]中的數代入檢驗,就有70分了。
至於100分……要用到乙個很簡單的結論:f(x)%p=f(x%p)%p,也就是說只要列舉[0,p-1]就行了。將質數p的大小控制在104
左右,就能ac。
code:
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int maxn=105;
const
int maxm=10010;
const
int m[6]=;
int a[6][maxn];
bool vis[6][maxm];
char s[maxm];
int n,m;
bool judge(int x)
int main()
}for (int j=0; j<6; j++)
for (int i=0; iint sum=0,v=1;
for (int k=0; k<=n; k++) sum=(sum+v*a[j][k])%m[j],v=v*i%m[j];
if (sum) vis[j][i]=true;
}int num=0;
for (int i=1; i<=m; i++) if ( judge(i) ) num++;
printf("%d\n",num);
for (int i=1; i<=m; i++) if ( judge(i) ) printf("%d\n",i);
return
0;}
洛谷p2312 解方程
清明培訓qwq,明天就要回學校了qwq拒絕 行吧我洛谷都四天沒碰了 解方程 傳送門 演算法標籤 作為乙個提高 省選 的題 丁大佬真的很有幽默感emmm include const long long mod int 1e9 7 const int maxn 100 5 const int maxm ...
洛谷 P2312 解方程
已知多項式方程 a 0 a 1x a 2x 2 a nx n 0 用latex好看多了 求這個方程在 1,m 內的整數解 n 和m 均為正整數 輸入格式 輸入檔名為equation in。輸入共n 2 行。第一行包含2 個整數n m 每兩個整數之間用乙個空格隔開。接下來的n 1 行每行包含乙個整數,...
洛谷P2312 解方程題解
已知多項式方程 a 0 a 1x a 2x 2 cdots a nx n 0 求這個方程在 1,m 內的整數解 n 和 m 均為正整數 輸入共 n 2 行。第一行包含 2 個整數 n,m 每兩個整數之間用乙個空格隔開。接下來的 n 1 行每行包含乙個整數,依次為 a 0,a 1,a 2 ldots ...