1 条题解
-
0
#include<bits/stdc++.h> #define P 1000000007 #define ll long long using namespace std; const int N=105; int n,m,k,s,t,H[N],mi; ll f[N][1005],ans; void calc(int k){ memset(f,0,sizeof(f)); f[1][k]++; for (int i=1;i<n;++i){ int sum=0; for (int j=k;j<=H[i];++j){ sum=(sum+f[i][j])%P; if (k<=H[i+1]-(j-k)){ (f[i+1][k]+=sum)%=P; (f[i+1][H[i+1]-(j-k)+1]-=sum)%=P; } } } ans=(ans+f[n][k])%P; } int main(){ cin>>n;mi=0x3f3f3f3f; for (int i=1;i<=n;++i) cin>>H[i],mi=min(mi,H[i]); if (n&1) for (int i=0;i<=mi;++i) calc(i); else calc(0); cout<<(ans+P)%P; }
- 1
信息
- ID
- 511
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 16
- 已通过
- 12
- 上传者