……但是没仔细看,直接跳过了
这题直接枚举就可以过了
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<string>
using namespace std;
__int64 a[5];
int n;
__int64 swap(__int64 x)
{
if(n==1) return a[1]*x+a[0];
else if(n==2) return a[2]*x*x+a[1]*x+a[0];
else if(n==3) return a[3]*x*x*x+a[2]*x*x+a[1]*x+a[0];
else return a[4]*x*x*x*x+a[3]*x*x*x+a[2]*x*x+a[1]*x+a[0];
}
int main()
{
__int64 i,j,pri;
int t,k=0;
bool flag;
cin>>t;
while(t--)
{
cin>>n;
for(i=n;i>=0;i--)
scanf("%I64d",&a[i]);
scanf("%I64d",&pri);
printf("Case #%d: ",++k);
flag=0;
for(i=0;i<pri;i++)
{
if(swap(i)%pri==0)
{
for(j=i;j<pri*pri;j+=pri)
if(swap(j)%(pri*pri)==0)
{
printf("%I64d
",j);
flag=1;
break;
}
}
if(flag)
break;
}
if(!flag) printf("No solution!
");
}
return 0;
}