涔犻锛欸uess the Root锛堥珮鏂秷鍏冿級
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了涔犻锛欸uess the Root锛堥珮鏂秷鍏冿級相关的知识,希望对你有一定的参考价值。
鏍囩锛?a href='http://www.mamicode.com/so/1/%e5%b0%b1%e6%98%af' title='灏辨槸'>灏辨槸
ret f11 lan ++ root 楂樻柉娑堝厓 out cout棰樼洰
鎬濊矾
闃胯繖
鍩烘湰涓婂氨鏄毚鍔涚敤楂樻柉娑堝厓鏉ユ悶灏辫浜?/p>
鍥犱负(mod)寰堝皬锛屾墍浠ュ彲浠ョ洿鎺ユ灇涓?span class="math inline">(x)
浠g爜
#include<iostream>
using namespace std;
const int mod=1e6+3;
int n=11;
long long a[15][15];
long long f_abs(long long x)
{
return x<0?-x:x;
}
long long qkpow(int a,int b)
{
if(b==0)
return 1;
if(b==1)
return a;
long long t=qkpow(a,b/2);
t=t*t%mod;
if(b%2==1)
t=t*a%mod;
return t;
}
int main()
{
for(int i=1;i<=n;i++)
{
cout<<"? "<<i-1<<endl;
cin>>a[i][n+1];
for(int j=1;j<=n;j++)
a[i][j]=qkpow(i-1,j-1);
}
for(int i=1;i<=n;i++)
{
int _ind=i;
for(int j=i+1;j<=n;j++)
if(f_abs(a[j][i])>f_abs(a[_ind][i]))
_ind=j;
swap(a[_ind],a[i]);
if(a[i][i]==0)
{
cout<<"! -1";
return 0;
}
for(int j=1;j<=n;j++)
{
if(j!=i)
{
long long t=a[j][i]*qkpow(a[i][i],mod-2);
for(int k=i+1;k<=n+1;k++)
{
a[j][k]=((a[j][k]-t*a[i][k])%mod+mod)%mod;
}
}
}
}
for(int i=1;i<=n;i++)
{
a[i][i]=a[i][n+1]*qkpow(a[i][i],mod-2)%mod;
}
for(int i=0;i<mod;i++)
{
long long t=0;
for(int j=1;j<=n+1;j++)
{
t=(t+qkpow(i,j-1)*a[j][j]%mod)%mod;
//cout<<qkpow(i,j-1)<<鈥?鈥?lt;<a[j][j]<<endl;
}
//cout<<endl;
if(t==0)
{
cout<<"! "<<i;
return 0;
}
}
cout<<"! -1";
return 0;
}
以上是关于涔犻锛欸uess the Root锛堥珮鏂秷鍏冿級的主要内容,如果未能解决你的问题,请参考以下文章
NoClassDefFoundError锛欸enericObjectPoolConfig 闂