zoukankan      html  css  js  c++  java
  • [NOIP2014]解方程

    看起来一脸高精+不可做的样子。。。但实际上是非常可做的。
    高中数学必修三上面有一个算法是秦九韶算法。用这个算法做就行了。
    但是那个高精度让人看的崩溃。但是我们的需求只有求左边这个式子答案是不是0,所以可以多膜几个不太大的数,为保证正确性,%了5个。时间复杂度是2w多的一个数*n+m。可以过
    但是bzoj太慢了,卡的我差点没过。
    luogu数据太水了,机器跑的又比(€€₣)的不知道快到哪里去了,nm+大常数的也能过。。。

    /**************************************************************
        Problem: 3751
        Language: C++
        Result: Accepted
        Time:9872 ms//bzoj太慢了!
        Memory:15460 kb
    ****************************************************************/
     
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    int n,m;
    const int mod[]={11261,19997,22877,21893,14843};
    int s[6][102];
    char a[10005];
    inline bool calc(int id,long long x) {
        int ans=s[id][n];
        for(int i=n-1;~i;i--) {
            ans=(ans*x+s[id][i])%mod[id];
        }if(ans) return 1;return 0;
    }
    int ans[105][25000];
    inline bool cal(int x) {
        for(int i=0;i<5;i++) if(ans[i][x%mod[i]])return 0;
        return 1;
    }
    int stk[1000005],top;
    int main() {
        scanf("%d%d",&n,&m);
        for(int i=0,len;i<=n;i++) {
            scanf("%s",a);
            len=strlen(a);
            int j=0,f=1;
            if(a[0]=='-') f=-1,j=1;
            else j=0,f=1;
            for(j;j<len;j++) for(int k=0;k<5;k++) s[k][i]=(s[k][i]*10+a[j]-'0')%mod[k];
            for(int k=0;k<5;k++) s[k][i]*=f;
        }
        for(int i=0;i<5;i++) 
            for(int j=0;j<=22876;j++) 
                ans[i][j]=calc(i,j);
        for(int i=1;i<=m;i++) if(cal(i)) stk[++top]=i;
        printf("%d
    ",top);
        for(int i=1;i<=top;i++) printf("%d
    ",stk[i]);
    }
    
    我是咸鱼。转载博客请征得博主同意Orz
  • 相关阅读:
    python manage.py runserver 0.0.0.0:8000 zkz的专栏 博客频道 CSDN.NET
    分享:Intel 发布 Android 模拟器的 x86 系统映像
    分享:TreeFrog 1.1 发布,C++ Web 应用开发框架
    update R on ubuntu
    分享:FastFlow 2.0 发布,多核编程框架
    分享:centos daemon make and install
    LINQ TO SQL三层架构~更新操作
    泛型中的协变
    MVC中的统一验证机制~续
    LINQ TO SQL三层架构~添加操作
  • 原文地址:https://www.cnblogs.com/sdfzhsz/p/9606799.html
Copyright © 2011-2022 走看看