zoukankan      html  css  js  c++  java
  • 【NOIP2014】解方程

    Description

    P

    Input

    Output

    Sample Input

    P

    Sample Output

    P

    题解:

      这个题目本来是很难的,但因为数据很水,所以就很容易水过去了。

      首先我们要使得f(x)==0,那么f(x)mod 任何数都必定是0,那么我们可以选择合适的质数,对f(x)取模,那么不包含这个质因子的所有所有数都会被我们排除,所以我们可以多尝试选出很多个质数进行检查,wa的几率就十分小了。

       然后为了算出f(x),我们必须写一个大整数取模,讲取模之后的预处理出来。然后可以用秦九韶算法来求表达式的值,这样复杂度就对了。

    代码:

    #include <cstdio>
    
    #include <iostream>
    
    #include <algorithm>
    
    #include <cstring>
    
    #include <cmath>
    
    #include <iostream>
    
    #include <vector>
    
    #define MAXN 101000
    
    #define MAXNm 1000000
    
    #define ll long long
    
    #define mod 100000000007
    
    using namespace std;
    
    char ch[MAXN];
    
    ll a[200];
    
    int ans[MAXNm],f[MAXNm],num=0,n,m;
    
     
    
    bool check(int x){
    
        ll sum=0;
    
        for(int i=n;i>=0;i--){
    
            sum=(sum*x+a[i])%mod;
    
        }
    
        if(sum==0) return 1;
    
        return 0;
    
    }
    
     
    
    void init(){
    
        scanf("%d%d",&n,&m);
    
        for(int i=0;i<=n;i++){
    
            scanf("%s",ch+1);int len=strlen(ch+1);
    
            for(int j=1;j<=len;j++){
    
                if(ch[j]==45) {f[i]=1;continue;}
    
                a[i]=(a[i]*10+ch[j]-'0')%mod;
    
            }
    
            if(f[i]==1) a[i]*=-1;
    
        }
    
        for(int x=1;x<=m;x++){
    
            if(check(x)) ans[++num]=x;
    
        }
    
        printf("%d
    ",num);
    
        for(int i=1;i<=num;i++) printf("%d
    ",ans[i]);
    
    }
    
     
    
    int main()
    
    {
    
        init();
    
        return 0;
    
    }
  • 相关阅读:
    CSS3 target伪类简介
    不用position,让div垂直居中
    css3 在线编辑工具 连兼容都写好了
    a标签伪类的顺序
    oncopy和onpaste
    【leetcode】1523. Count Odd Numbers in an Interval Range
    【leetcode】1518. Water Bottles
    【leetcode】1514. Path with Maximum Probability
    【leetcode】1513. Number of Substrings With Only 1s
    【leetcode】1512. Number of Good Pairs
  • 原文地址:https://www.cnblogs.com/renjianshige/p/7610550.html
Copyright © 2011-2022 走看看