Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <stdio.h>typedef long long ll;const ll mod=1000000007;ll max(ll a,ll b){ return a>b?a:b; }ll fastpower(ll a,ll b){ll res=1;ll temp=a;while(b){if(b&1) res=res*temp%mod;temp=temp*temp%mod;b>>=1;}return res;}void solve(){int n;scanf("%d",&n);ll dp[16];//小于7时直接赋值for(int i=0;i<7;i++) dp[i]=i;for(int i=7;i<16;i++){dp[i]=0;//穷举Kfor(int k=i-3;k>0;k--) dp[i]=max(dp[i],dp[i-2-k]*(k+1)%mod);}if(n<16) printf("%lld",dp[n]);else{int x=(n-11)%5+11;