社区讨论

不快读+秦九韶+(1e9+7)却 30 分

P2312[NOIP 2014 提高组] 解方程参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lok7nsu7
此快照首次捕获于
2023/11/04 23:40
2 年前
此快照最后确认于
2023/11/04 23:40
2 年前
查看原帖
求助各位,我也太冤啦。
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;

const int mod=1e9+7;

int String_Int_Mod(string s){
    int res=0;
    if(s.front()=='-'){
        while (s.size()>1) {
            int z=(int)(s.back()-'0');
            res=(res*10%mod+z%mod)%mod;
            s.pop_back();
        }
    }
    else{
        while(s.size()){
            int z=(int)(s.back()-'0');
            res=(res*10%mod+z%mod)%mod;
            s.pop_back();
        }
    }
    
    return (res*(s.front()=='-'?-1:1)+mod)%mod;
}

vector<int>a(101);

bool check(int x,int n){
    int nin=a[n];
    for (int i=n; i>=1; i--) {
        nin=((nin%mod*x%mod)%mod+a[i-1]%mod)%mod;
    }
    return nin%mod==0;
}

signed main(){
    int n,m;
    cin>>n>>m;
    string s;
    for(int i=0;i<=n;i++){
        cin>>s;
        a[i]=String_Int_Mod(s);
    }
    int ans=0;
    vector<int>p;
    for (int i=1; i<=m; i++) {
        if(check(i,n)){
            ans++;
            p.push_back(i);
        }
    }
    cout<<ans<<endl;
    for (auto x:p) {
        cout<<x<<endl;
    }
    return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...