求方程
\[\sum_^a_ix^i=0
\]在\([1,m]\)內的整數解
\(1 \leq |a_i| \leq 10^,a_i\neq 0,1 \leq n \leq 100,1 \leq m<10^6\)
最樸素的做法就是嘗試所有解,判斷左邊多項式值是否為零
但還有乙個高精問題(如果你真要用高精我也不攔你)
可以考慮一種類雜湊做法,如果所有運算都對乙個大質數取模,答案的正確性基本可以保證,而且可以省掉高精
實測計算左側多項式秦九昭演算法和直接算的時間相差不大(只要你不是用快速冪算的)
\(o(nm)\)做法,貌似\(10^8\)再加一堆*%運算,卡常?
沒錯,我在calc函式內寫ret*=x;ret+=x[i];ret%=p
就被卡掉qaq
#include#include#includeconst long long p=998244353;
int n,m;
long long x[200];
int all;
std::vectorv;
void read(long long &x)
x=ch&15;
while (isdigit(ch=getchar()))
if (flag) x=-x+p;
}long long calc(int x)
int main()
} printf("%d\n",all);
for (std::vector::iterator it=v.begin();it!=v.end();it++) printf("%d\n",*it);
}
NOIP提高組2014 解方程
題面 解方程 思路 首先你會發現資料非常毒瘤,a i 10 最開始以為要寫高精度,等了要完模板之後 沒錯我這麼辣雞怎麼會高精 才發現,根本用不著23333 因為其 n 比較小,可以考慮 hash 的思想,把 a i 都 乙個大質數,就避免了高精度,具體實現就是在讀入的時候 inline ll rea...
NOIP2014提高組 解方程
noip2014 提高組 day2 試題。已知多項式方程 a0 a1 x a2 x2 an xn 0 求這個方程在 1,m 內的整數解 n 和 m 均為正整數 輸入共 n 2 行。第一行包含 2 個整數 n m,每兩個整數之間用乙個空格隔開。接下來的 n 1 行每行包含乙個整數,依次為 a0,a1,...
NOIP2014提高組 解方程
題目傳送門 習慣性放洛谷的鏈結 這一題看起來資料範圍巨大無比,需要使用各種玄學方法,看了題解後整個人懵逼了.對於30 的資料,0 該資料範圍直接高精度,在 1,m 的範圍內暴力列舉即可。時間複雜度為 o n m len 其中 len 表示高精度計算過程中數字的位數。對於50 的資料 0 我們考慮用秦...