G36 生成函数的应用
视频链接:https://www.bilibili.com/video/BV1fP411g7bm/
#include<bits/stdc++.h> using namespace std; const int P=10007; char s[510]; int main(){ scanf("%s",s); int n=0,len=strlen(s); for(int i=0;i<len;i++) n=(n*10%P+s[i]-'0')%P; int ans=n*(n+1)%P*(n+2)%P*1668%P; printf("%d\n",ans); return 0; }
#include<bits/stdc++.h> using namespace std; const int P=10007; char s[510]; int qpow(int a,int b){ int res=1; while(b){ if(b&1) res=(res*a)%P; a=(a*a)%P; b>>=1; } return res; } int main(){ scanf("%s",s); int n=0,len=strlen(s); for(int i=0;i<len;i++) n=(n*10%P+s[i]-'0')%P; int ans=n*(n+1)%P*(n+2)%P*qpow(6,P-2)%P; printf("%d\n",ans); return 0; }
#include <cstdio> using namespace std; const int P=10007; int qpow(int a, int b){ int res=1; while(b){ if(b & 1) res=res*a%P; a=a*a%P; b>>=1; } return res; } int main(){ int t,n,ans; scanf("%d", &t); while(t--){ scanf("%d", &n); ans=(qpow(4,n-1)+qpow(2,n-1))%P; printf("%d\n", ans); } return 0; }
浙公网安备 33010602011771号