BZOJ 1088 扫雷
生活随笔
收集整理的這篇文章主要介紹了
BZOJ 1088 扫雷
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
枚舉第一格放不放
之后遞推即可
然而我寫的什么鬼?
#include <cstdio>const int MAXN=10111;int N; int Num[MAXN]; long long DP[MAXN][4][4][4];int main(){scanf("%d", &N);for(int i=1;i<=N;++i) scanf("%d", &Num[i]);DP[2][1][1][0]=1L;DP[2][0][0][0]=1L;for(int i=2;i<=N;++i){for(int a=0;a<=3;++a){for(int b=0;b<=3;++b){for(int c=0;c<=3;++c){if(DP[i][a][b][c]==0LL) continue;if(a==Num[i-1]){DP[i+1][b][c][0]+=DP[i][a][b][c];}else if(a==Num[i-1]-1){DP[i+1][b+1][c+1][0]+=DP[i][a][b][c];}}}}}long long ANS=0LL;for(int b=0;b<=3;++b)for(int c=0;c<=3;++c){ANS+=DP[N+1][Num[N]][b][c];}printf("%lld\n", ANS);return 0; }轉載于:https://www.cnblogs.com/Pickupwin/p/9095740.html
總結
以上是生活随笔為你收集整理的BZOJ 1088 扫雷的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为啥腾讯元宝要进行性能优化?
- 下一篇: 关于flex布局,我大多数常用的几个点