1.直接令x=0,为了判断这一信息,对于所有含有多个1的yi,必然是无用的,答案至少为n且不能含有多位1的y
2.令yi=2^(i-1),由此发现一定可以得到x每一位的答案,即答案最多为n。
因此,发现方案数即n!,当$n\ge p$时答案一定为0,时间复杂度为o(p)
1 #include<bits/stdc++.h> 2 using namespace std; 3 #define mod 1000003 4 int n,fac[mod]; 5 int main(){ 6 fac[0]=1; 7 for(int i=1;i<mod;i++)fac[i]=1LL*fac[i-1]*i%mod; 8 while (scanf("%d",&n)!=EOF) 9 if (n>=mod)printf("0\n"); 10 else printf("%d\n",fac[n]); 11 }