mine (dp)
来源:互联网 发布:can数据帧格式 编辑:程序博客网 时间:2024/06/05 10:31
10.3
mine
思路:
简单dp
#include <cstdio>#include <cstring>#define LL long long #define N 5000010const LL mod = 1e9 + 7;int len;char s[N];LL f[N][5], ans = 0;//5种状态 0:以0结尾 1:以*1结尾 2:以1结尾(1前无*) 3:以2结尾 4:以*结尾 int main(){ freopen("mine.in","r",stdin); freopen("mine.out","w",stdout); scanf("%s", s+1); len = strlen(s + 1); f[0][0] = 1; for(int i=1; i<=len; i++){ if(s[i]=='?' || s[i]=='0') f[i][0] = (f[i-1][0] + f[i-1][1]) % mod; if(s[i]=='?' || s[i]=='1') f[i][1] = f[i-1][4], f[i][2] = (f[i-1][0] + f[i-1][1]) % mod; if(s[i]=='?' || s[i]=='2') f[i][3] = f[i-1][4]; if(s[i]=='?' || s[i]=='*') f[i][4] = (f[i-1][4] + f[i-1][2] + f[i-1][3]) % mod; if((s[i]=='?' || s[i]=='*') && i == 1) f[i][4] = 1; } ans = (f[len][0] + f[len][1] + f[len][4]) % mod; printf("%I64d\n", ans); return 0;}
阅读全文
0 0
- mine (dp)
- DP mine
- [BZOJ1088][SCOI2005]扫雷Mine(dp)
- [bzoj1088][DP]扫雷Mine
- bzoj1088.扫雷Mine (模拟 || DP)
- BZOJ1088(SCOI2005)[扫雷Mine]--DP
- The Mine (bfs)
- MINE
- MINE
- mine
- Mine
- [BZOJ]1088: [SCOI2005]扫雷Mine[乱搞DP]
- 【状压DP】BZOJ1088(SCOI2005)[扫雷Mine]题解
- [BZOJ1088]-[SCOI2005]扫雷Mine-简单dp
- ARC 078F Mole and Abandoned Mine 状压DP
- (NOIP2015第二题)扫雷(mine)
- hdu 3316 Mine sweeping(迷宫)
- hdu 3316 Mine sweeping(BFS)
- 《Java核心技术》第10版读书笔记之Chap5(3)——Object类及其equals、hashCode与toString方法
- 保研路
- C++ MFC / VS2013 之七 (对话框:为控件添加消息处理函数)
- 【图像融合】拉普拉斯金字塔融合
- linux基础命令4
- mine (dp)
- 史上最详细的XGBoost实战
- 10.3总结_关于测验
- luogu2945 [USACO09MAR]沙堡Sand Castle
- Docker容器命令整理
- eul2tr
- yum安装nginx
- Android Launcher 启动 Activity 的工作过程
- 51单片机外设之——按键的检测(带有标志位的按键识别法)