2 条题解
-
1
202507zj23周子祥 (周子祥) LV 8 @ 2025-07-11 19:06:12
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#define ll long long
using namespace std;
const int MOD1=15013;
const int MOD2=30323;
const int MOD3=15083;
const int LIM=10033;
char s[LIM];
int n,m;
int a1[103],a2[103],a3[103];
int ans[1000033],acnt=0;
int main()
{
scanf("%d%d",&n,&m);
ll a,b,c;int len;
bool flag;
for(int i=0;i<=n;++i)
{
flag=0;
scanf("%s",s);
if(s[0]=='-') {
flag=1;
s[0]='0';
}
len=strlen(s);
a=0;b=0;c=0;
for(int j=0;j<len;++j)
{
a=(a*10+s[j]-'0')%MOD1;
b=(b*10+s[j]-'0')%MOD2;
c=(c*10+s[j]-'0')%MOD3;
}
if(flag){
a1[i]=-a;
a2[i]=-b;
a3[i]=-c;
}else{
a1[i]=a;
a2[i]=b;
a3[i]=c;
}
}
ll mi1,mi2,mi3;
ll sum1,sum2,sum3;
for(int i=1;i<=m;++i)
{
mi1=1,mi2=1,mi3=1;
sum1=a1[0];
sum2=a2[0];
sum3=a3[0];
for(int j=1;j<=n;++j)
{
mi1=mi1*i%MOD1;
mi2=mi2*i%MOD2;
mi3=mi3*i%MOD3;
sum1+=a1[j]*mi1%MOD1;
sum2+=a2[j]*mi2%MOD2;
sum3+=a3[j]*mi3%MOD3;
}
sum1=(sum1+MOD1)%MOD1;
sum2=(sum2+MOD2)%MOD2;
sum3=(sum3+MOD3)%MOD3;
if(sum1==0&&sum2==0&&sum3==0){
ans[++acnt]=i;
}
}
printf("%d\n",acnt);
for(int i=1;i<=acnt;++i)
{
printf("%d\n",ans[i]);
}
return 0;
} -
02021-12-30 19:48:29@
#include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> #include <algorithm> #define ll long long using namespace std; const int MOD1=15013; const int MOD2=30323; const int MOD3=15083; const int LIM=10033; char s[LIM]; int n,m; int a1[103],a2[103],a3[103]; int ans[1000033],acnt=0; int main() { scanf("%d%d",&n,&m); ll a,b,c;int len; bool flag; for(int i=0;i<=n;++i) { flag=0; scanf("%s",s); if(s[0]=='-') { flag=1; s[0]='0'; } len=strlen(s); a=0;b=0;c=0; for(int j=0;j<len;++j) { a=(a*10+s[j]-'0')%MOD1; b=(b*10+s[j]-'0')%MOD2; c=(c*10+s[j]-'0')%MOD3; } if(flag){ a1[i]=-a; a2[i]=-b; a3[i]=-c; }else{ a1[i]=a; a2[i]=b; a3[i]=c; } } ll mi1,mi2,mi3; ll sum1,sum2,sum3; for(int i=1;i<=m;++i) { mi1=1,mi2=1,mi3=1; sum1=a1[0]; sum2=a2[0]; sum3=a3[0]; for(int j=1;j<=n;++j) { mi1=mi1*i%MOD1; mi2=mi2*i%MOD2; mi3=mi3*i%MOD3; sum1+=a1[j]*mi1%MOD1; sum2+=a2[j]*mi2%MOD2; sum3+=a3[j]*mi3%MOD3; } sum1=(sum1+MOD1)%MOD1; sum2=(sum2+MOD2)%MOD2; sum3=(sum3+MOD3)%MOD3; if(sum1==0&&sum2==0&&sum3==0){ ans[++acnt]=i; } } printf("%d\n",acnt); for(int i=1;i<=acnt;++i) { printf("%d\n",ans[i]); } return 0; }
- 1
信息
- ID
- 1408
- 难度
- 9
- 分类
- (无)
- 标签
- 递交数
- 5
- 已通过
- 5
- 通过率
- 100%
- 上传者