[CF480C]Riding in a Lift
2017-06-11 16:08
351 查看
题目描述
懒得写DP
设f[i,j]表示第j次在i。转移到的是个区间,用前缀和优化即可。
#include<cstdio> #include<algorithm> #include<cmath> #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; const int maxn=5000+10,mo=1000000007; int f[maxn*2][maxn]; int i,j,k,l,t,n,m,a,b,ans; int main(){ scanf("%d%d%d%d",&n,&a,&b,&m); f[a][0]=1; f[a+1][0]=-1; fo(j,0,m){ fo(i,1,n) (f[i][j]+=f[i-1][j])%=mo; if (j==m) break; fo(i,1,n) if (i!=b&&f[i][j]){ k=abs(i-b)-1; t=max(i-k,1); (f[t][j+1]+=f[i][j])%=mo; (f[i][j+1]-=f[i][j])%=mo; t=min(i+k,n); (f[i+1][j+1]+=f[i][j])%=mo; (f[t+1][j+1]-=f[i][j])%=mo; } } fo(i,1,n) if (i!=b) (ans+=f[i][m])%=mo; (ans+=mo)%=mo; printf("%d\n",ans); }
相关文章推荐
- 【Codeforces Round 274 (Div 2)E】【DP 成段更新 打标记法 滚动数组】Riding in a Lift 乘坐k次电梯避免到达b层的方案数
- CF 274 div2 E - Riding in a Lift (递推)
- codeforce 479E - Riding in a Lift
- CF479 Riding in a Lift
- CF_Round274_Div1C_Riding in a lift_动态规划
- Codeforces Round #274 (Div. 2) E题:Riding in a Lift(DP)
- Codeforces Round #274 (Div. 2) Riding in a Lift(DP 前缀和)
- [笔记] Codeforces#274 Riding in a Lift (479E) DP
- Codeforces Round #274 Riding in a Lift (DP)
- E. Riding in a Lift(Codeforces Round #274)
- codeforces Riding in a Lift
- CodeForces 479 E. Riding in a Lift
- Codeforces Round #274 (Div. 2) E. Riding in a Lift(DP)
- codeforces 480C C. Riding in a Lift(dp)
- E. Riding in a Lift(Codeforces Round #274)
- Codeforces Round #274 (Div. 2) E. Riding in a Lift(DP)
- Codeforces Round #274 (Div. 2)-E. Riding in a Lift
- cf479E Riding in a Lift
- Codeforces 479E Riding in a Lift(dp)
- Codeforces 479E Riding in a Lift(dp)