【洛谷p2312】解方程

(清明培训qwq,明天就要回学校了qwq拒绝)

行吧我洛谷都四天没碰了

解方程【传送门】

算法标签:

(作为一个提高+省选-的题)


丁大佬真的很有幽默感emmm:

#include <cstdio>
const long long Mod = (int)1e9 + 7;
const int maxN = 100 + 5;
const int maxM = (int)1e6 + 5;

int N, M;
int arr[maxN];

void Fscan(int &tmpX) {
    int Ch = getchar(), F = ' ';
    long long tmp = 0;
    while (Ch < '0' || Ch > '9') {
        F = Ch;
        Ch = getchar();
    }
    while ('0' <= Ch && Ch <= '9') {
        tmp = ((tmp << 3) + (tmp << 1) + Ch - '0') % Mod;
        Ch = getchar();
    }
    tmpX = (int)(F == '-' ? -tmp : tmp);
}
void Read() {
    scanf("%d%d", &N, &M);
    for (int i = 0; i <= N; ++i)
        Fscan(arr[i]);
}

int T, Que[maxM];
long long Calc(const int &X) {
    long long Ans = 0;
    for (int i = N; i; --i) 
        Ans = ((Ans + (long long)arr[i]) * (long long)X) % Mod;
    Ans = (Ans + (long long)arr[0]) % Mod;
    return Ans;
}
void Solve() {
    for (int i = 1; i <= M; ++i) 
        if (!Calc(i))
            Que[++T] = i;
}
int main() {
    Read();
    Solve();
    printf("%d
", T);
    for (int i = 1; i <= T; ++i)
        printf("%d
", Que[i]);
    return 0;
}
原文地址:https://www.cnblogs.com/zhuier-xquan/p/10665579.html