• NOIP2014 解方程


    描述

    已知多项式方程:

    a0+a1x+a2x2+...+anxn=0a0+a1x+a2x2+...+anxn=0

    求这个方程在[1, m]内的整数解(n 和 m 均为正整数)。

    格式

    输入格式

    输入共 n+2 行。

    第一行包含 2 个整数 n、m,每两个整数之间用一个空格隔开。

    接下来的 n+1 行每行包含一个整数,依次为a0,a1,a2,...,ana0,a1,a2,...,an

    输出格式

    第一行输出方程在[1, m]内的整数解的个数。

    接下来每行一个整数,按照从小到大的顺序依次输出方程在[1, m]内的一个整数解。

    样例1

    样例输入1[复制]

     
    2 10
    1
    -2
    1
    

    样例输出1[复制]

     
    1
    1
    

    样例2

    样例输入2[复制]

     
    2 10
    2
    -3
    1
    

    样例输出2[复制]

     
    2
    1
    2
    

    样例3

    样例输入3[复制]

     
    2 10
    1
    3
    2
    

    样例输出3[复制]

     
    0

    限制

    对于 30%的数据,0 < n ≤ 2, |ai||ai| ≤ 100,anan ≠ 0, m ≤ 100;

    对于 50%的数据,0 < n ≤ 100, |ai||ai| ≤ 1010010100 ,anan ≠ 0,m ≤ 100;

    对于 70%的数据,0 < n ≤ 100, |ai||ai| ≤ 10100001010000 ,anan ≠ 0,m ≤ 10000;

    对于 100%的数据,0 < n ≤ 100, |ai||ai| ≤ 10100001010000 ,anan ≠ 0,m ≤ 1000000。

    今天先水个30分。。。

     1 #include<iostream>
     2 #include<vector>
     3 #include<algorithm>
     4 using namespace std;
     5 
     6 long long n,m;
     7 long long A[101];
     8 
     9 long long i;
    10 vector<long long> T;
    11 
    12 long long dfs(long long p)
    13 {
    14     if(p==0) return A[n];
    15     return dfs(p-1)*i+A[n-p];
    16 }
    17 
    18 int main()
    19 {
    20     cin>>n>>m;
    21     for(long long i=0;i<=n;i++) cin>>A[i];
    22     for(i=1;i<=m;i++)
    23         if(dfs(n)==0) T.push_back(i);
    24     cout<<T.size()<<endl;
    25     for(long long i=0;i<T.size();i++)
    26         cout<<T[i]<<endl;
    27     return 0;
    28 }
  • 相关阅读:
    三层架构及生活实例
    初识ADO.NET
    remoting与socket、web service的比较及实例
    ERP与MES
    25人赛跑问题-得出前三名
    WPF导学目录
    心目中的职业初规划
    应用服务器
    2015广深骑行记
    ASP.NET的几个试题(《C#与.NET程序员面试宝典》)
  • 原文地址:https://www.cnblogs.com/InWILL/p/5918358.html
Copyright © 2020-2023  润新知