时间限制: 1 Sec 内存限制: 512 MB
题解:
可以找规律,其实我也不会不会推。
Code:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,m,a[2005];ll ans;
const int mod=1e9+7;
ll power(int a,int b)
{
ll ans=1,p=a;
while(b)
{
if(b&1)ans=ans*p%mod;
p=p*p%mod;
b>>=1;
}
return ans;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)scanf("%d",&a[i]);
for(int i=1;i<=m;i++)
{
ll sum=1;
for(int j=0;j<i;j++)
sum=sum*power(i-j+1,a[j+1]-a[j])%mod;
ans=(ans+sum)%mod;
}
printf("%lld\n",(ans-m+mod)%mod);
}