题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5965

题目大意:中文题,自己读

解图思路:对于每一列都有三种情况--0, 1, 2。 如果第一列确定地雷的数量, 那么下一列地雷的数量为已知的, 同理可以求出剩下所有列地雷的数量。需要注意, 对于1的情况, 有0,1和1,0两种, 所以需要乘以2

代码如下:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int N = , mod = 1e8+;
  4.  
  5. char str[N];
  6. int dp[N], num[N];
  7.  
  8. void solve()
  9. {
  10. scanf("%s", str);
  11. for(int i=; str[i]; ++ i)
  12. num[i+] = str[i] - '';
  13.  
  14. int len = strlen(str);
  15. memset(dp, , sizeof(dp));
  16.  
  17. int ans = ;
  18. for(int i=; i<=num[] && i<; ++ i)
  19. {
  20. dp[] = i;
  21. bool is = true;
  22. for(int j=; j<=len; ++ j)
  23. {
  24. dp[j] = num[j-] - dp[j-] - dp[j-];
  25. if(dp[j] > || dp[j] < )
  26. {
  27. is = false;
  28. break;
  29. }
  30. }
  31. if(is == false)
  32. continue;
  33. if(dp[len] + dp[len-] != num[len])
  34. continue;
  35.  
  36. int res = ;
  37. for(int j=; j<=len; ++ j)
  38. {
  39. if(dp[j] == )
  40. res = (res * ) % mod;
  41. }
  42. ans = (ans + res) % mod;
  43. }
  44. printf("%d\n", ans);
  45. }
  46. int main()
  47. {
  48. int t;
  49. scanf("%d", &t);
  50. for(int i=; i<=t; ++ i)
  51. solve();
  52. return ;
  53. }

Hdu OJ 5965 扫雷(递推)的更多相关文章

  1. BestCoder Round #50 (div.1) 1003 The mook jong (HDU OJ 5366) 规律递推

    题目:Click here 题意:bestcoder 上面有中文题目 分析:令f[i]为最后一个木人桩摆放在i位置的方案,令s[i]为f[i]的前缀和.很容易就能想到f[i]=s[i-3]+1,s[i ...

  2. HDU 2085 核反应堆 --- 简单递推

    HDU 2085 核反应堆 /* HDU 2085 核反应堆 --- 简单递推 */ #include <cstdio> ; long long a[N], b[N]; //a表示高能质点 ...

  3. HDU 5860 Death Sequence(递推)

    HDU 5860 Death Sequence(递推) 题目链接http://acm.split.hdu.edu.cn/showproblem.php?pid=5860 Description You ...

  4. hdu_5965_扫雷(递推)

    题目链接:hdu_5965_扫雷 题意: 中文,还是自己看吧. 题解: 现场赛这题用的状压DP过的,不过现在想想当时还确实想复杂了,冷静下来仔细思靠一下,其实第i-1个确定了,那么第i个也是确定的,可 ...

  5. hdu 2604 Queuing(dp递推)

    昨晚搞的第二道矩阵快速幂,一开始我还想直接套个矩阵上去(原谅哥模板题做多了),后来看清楚题意后觉得有点像之前做的数位dp的水题,于是就用数位dp的方法去分析,推了好一会总算推出它的递推关系式了(还是菜 ...

  6. HDU 2154 跳舞毯 | DP | 递推 | 规律

    Description 由于长期缺乏运动,小黑发现自己的身材臃肿了许多,于是他想健身,更准确地说是减肥. 小黑买来一块圆形的毯子,把它们分成三等分,分别标上A,B,C,称之为“跳舞毯”,他的运动方式是 ...

  7. HDU - 3336 next运用+递推

    题目的匹配应该也要看成一个文本串与另一个模式串的匹配过程 Text是以当前i结尾的后缀来匹配Pattern的前缀(非真) 这里的Pattern肯定是可以匹配成功的,直接由next来保证(next总是当 ...

  8. hdu 5950 Recursive sequence 递推式 矩阵快速幂

    题目链接 题意 给定\(c_0,c_1,求c_n(c_0,c_1,n\lt 2^{31})\),递推公式为 \[c_i=c_{i-1}+2c_{i-2}+i^4\] 思路 参考 将递推式改写\[\be ...

  9. 九度OJ 1081:递推数列 (递归,二分法)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6194 解决:864 题目描述: 给定a0,a1,以及an=p*a(n-1) + q*a(n-2)中的p,q.这里n >= 2. 求第 ...

随机推荐

  1. Burp SuiteBurp Suite使用详解

    http://www.2cto.com/Article/201209/153312.html Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改 ...

  2. Servlet基础

    今天在学习Servlet的时候遇到了一个问题:大概是这样java.lang.ClassNotFoundException: HelloServlet at org.apache.catalina.lo ...

  3. LRU implement Data Structure analysis

    三种数据结构实现的LRU对比分析: 自适应循环链表, 跳表 和 伸展树 对比发现 : 跳表比其他两个会好一些(命中率) 来自论文 Performance Analysis of LRU

  4. Add Office 365 Azure Directory into Windows Azure

    Add Office 365 Azure Directory into Windows Azure Pre-Requisite: 1.Azure Subscription to the Microso ...

  5. More Effective c++

    指针和引用 引用对象必须存在,即不能引用空值,指针可以指向空值,引用必须初始化指向一个对象 指针可以改变指向的对象,引用不能改变所引用的对象 不改变指向对象使用引用,改变指向对象使用指针 重载[]时必 ...

  6. Docker网络详解

         当 Docker 启动时,会自动在主机上创建一个 docker0 虚拟网桥,实际上是 Linux 的一个 bridge,可以理解为一个软件交换机.它会在挂载到它的网口之间进行转发.      ...

  7. 表中排序ID断开重排

    客户需要排序ID和页面的问题序号一致,以前删除过一些问题导致order_id 中间有些断开的. 业务表 T_QUESTION order_id question_id  custom_id --1.创 ...

  8. Access、Hybrid和Trunk

    以太网端口有三种链路类型:Access.Hybrid和Trunk.Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口:Trunk类型的端口可以属于多个VLAN,可以接收和发送多个VL ...

  9. [C]遍历目录下所有文件

    #include<iostream>#include<string.h>#include<io.h>FILE *fp;using namespace std;voi ...

  10. WCF启用日志追踪

    调用使用http post调用WCF Restful服务时,WCF会自动反序列化body里的实体,如果实体反序列化不成功时,会返回一个请求错误,让去看服务器日志.需要启用日志追踪功能,才能看到具体的情 ...