vijos1910解方程

 

描述

已知多项式方程:

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。

来源

NOIP2014 提高组 Day2


 

初看本题,知道要取模一个素数但是有两个地方没考虑

1一个素数不够用,可能要出错,用5个素数就差不多了,这五个素数可以比较小10^4级就可以了

2根据题意如果f(x)=0,那么f(x+p)=0,后面的就不用算了

AC代码

 1 #include<cstdio>
 2 #include<iostream>
 3 #define M 1000002
 4 #define N 102
 5 using namespace std;
 6 int n,m;
 7 int ans[M];
 8 int a[N][5];
 9 int t[205][5];
10 int c[25000][5];
11 int p[5]={10007,23333,11119,11777,11177};
12 int cal(int y)
13 {
14     int tmp=0;
15     for(int i=0;i<=n;i++)
16     tmp=(tmp+a[i][y]*t[i][y])%p[y];
17     if(tmp<0)//减法取余要注意可能减到负数 
18         tmp+=p[y];
19     return tmp;
20 }
21 bool check(int mm)
22 {
23     for(int i=0;i<5;i++)
24     if(c[mm%p[i]][i]!=0)
25     return false;
26     return true;
27 }
28 int main()
29 {
30     cin>>n>>m;
31     for(int i=0;i<=n;i++)//读大系数 
32     {
33         char ai[10005];
34         scanf("%s",ai);
35         for(int k=0;k<5;k++)
36         {
37             int factor=0;
38             int j=0;
39             if(ai[0]=='-')j++;
40             for(;;j++)
41             {
42                 if(ai[j]<='9'&&ai[j]>='0')
43                 factor=(factor*10+ai[j]-'0')%p[k];
44                 else break;
45             }
46             if(ai[0]=='-')
47             factor*=-1;
48             a[i][k]=factor;
49         }
50     }
51     for(int i=0;i<5;i++)
52     for(int j=1;j<=p[i];j++)
53     {
54         t[0][i]=1;//第一个系数为a0*x^0
55         for(int k=1;k<=n;k++)t[k][i]=(t[k-1][i]*j)%p[i];
56         c[j][i]=cal(i);
57     }
58     for(int i=1;i<=m;i++)
59     if(check(i))
60     ans[++ans[0]]=i;
61     cout<<ans[0]<<endl;
62     for(int i=1;i<=ans[0];i++)
63     printf("%d\n",ans[i]);
64     return 0;
65 }

 

转载于:https://www.cnblogs.com/lwhinlearning/p/5697784.html

内容概要:《2024年中国城市低空经济发展指数报告》由36氪研究院发布,指出低空经济作为新质生产力的代表,已成为中国经济新的增长点。报告从发展环境、资金投入、创新能力、基础支撑发展成效五个维度构建了综合指数评价体系,评估了全国重点城市的低空经济发展状况。北京深圳在总指数中名列前茅,分别以91.2684.53的得分领先,展现出强大的资金投入、创新能力基础支撑。低空经济主要涉及无人机、eVTOL(电动垂直起降飞行器)直升机等产品,广泛应用于农业、物流、交通、应急救援等领域。政策支持、市场需技术进步共同推动了低空经济的快速发展,预计到2026年市场规模将突破万亿元。 适用人群:对低空经济发展感兴趣的政策制定者、投资者、企业研究人员。 使用场景及目标:①了低空经济的定义、分类发展驱动力;②掌握低空经济的主要应用场景市场规模预测;③评估各城市在低空经济发展中的表现潜力;④为政策制定、投资决策企业发展提供参考依据。 其他说明:报告强调了政策监管、产业生态建设区域融合错位的重要性,提出了加强法律法规建设、人才储备基础设施建设等建议。低空经济正加速向网络化、智能化、规模化集聚化方向发展,各地应找准自身比较优势,实现差异化发展。
数据集一个高质量的医学图像数据集,专门用于脑肿瘤的检测分类研究以下是关于这个数据集的详细介绍:该数据集包含5249张脑部MRI图像,分为训练集验证集。每张图像都标注了边界框(Bounding Boxes),并按照脑肿瘤的类型分为四个类别:胶质瘤(Glioma)、脑膜瘤(Meningioma)、无肿瘤(No Tumor)垂体瘤(Pituitary)。这些图像涵盖了不同的MRI扫描角度,包括矢状面、轴面冠状面,能够全面覆盖脑部剖结构,为模型训练提供了丰富多样的数据基础。高质量标注:边界框是通过LabelImg工具手动标注的,标注过程严谨,确保了标注的准确性可靠性。多角度覆盖:图像从不同的MRI扫描角度拍摄,包括矢状面、轴面冠状面,能够全面覆盖脑部剖结构。数据清洗与筛选:数据集在创建过程中经过了彻底的清洗,去除了噪声、错误标注质量不佳的图像,保证了数据的高质量。该数据集非常适合用于训练验证深度学习模型,以实现脑肿瘤的检测分类。它为开发医学图像处理中的计算机视觉应用提供了坚实的基础,能够帮助研究人员开发人员构建更准确、更可靠的脑肿瘤诊断系统。这个数据集为脑肿瘤检测分类的研究提供了宝贵的资源,能够帮助研究人员开发出更准确、更高效的诊断工具,从而为脑肿瘤患者的早期诊断治疗规划提供支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值