题目链接:

https://www.lydsy.com/JudgeOnline/problem.php?id=1088

题目大意:

现在棋盘是n×2的,第一列里面某些格子是雷,而第二列没有雷,如下图: 由于第一列的雷可能有多种方案满足第二列的数的限制,你的任务即根据第二列的信息确定第一列雷有多少种摆放方案。

思路:

只需要枚举第一行是否有雷就ok了。

判断的时候除了判断相等,还要判断每a个f[i]范围必须在0-1之间

 #include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);//不可再使用scanf printf
#define Max(a, b) ((a) > (b) ? (a) : (b))//禁用于函数,会超时
#define Min(a, b) ((a) < (b) ? (a) : (b))
#define Mem(a) memset(a, 0, sizeof(a))
#define Dis(x, y, x1, y1) ((x - x1) * (x - x1) + (y - y1) * (y - y1))
#define MID(l, r) ((l) + ((r) - (l)) / 2)
#define lson ((o)<<1)
#define rson ((o)<<1|1)
#define Accepted 0
#pragma comment(linker, "/STACK:102400000,102400000")//栈外挂
using namespace std;
inline int read()
{
int x=,f=;char ch=getchar();
while (ch<''||ch>''){if (ch=='-') f=-;ch=getchar();}
while (ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
} typedef long long ll;
const int maxn = + ;
const int MOD = ;//const引用更快,宏定义也更快
const int INF = 1e9 + ;
const double eps = 1e-;
int a[maxn];
int f[maxn];//f[i]表示i是否有雷
int n;
bool judge()
{
for(int i = ; i <= n; i++)f[i] = a[i - ] - f[i - ] - f[i - ];
for(int i = ; i <= n; i++)
{
if(a[i] != f[i - ] + f[i] + f[i + ] || f[i] < || f[i] > )return false;
}
return true;
}
int main()
{
cin >> n;
for(int i = ; i <= n; i++)scanf("%d", &a[i]);
int ans = ;
f[] = ;//枚举第一行
if(judge())ans++;
Mem(f);
f[] = ;
if(judge())ans++;
cout<<ans<<endl;
return Accepted;
}

最新文章

  1. Spring.Net学习之简单的知识点(一)
  2. libtcc使用问题一二
  3. 2.2 节的练习--Compiler principles, technologys, &amp;tools
  4. [前端 2]常用的JQuery和Dom页面取值与赋值
  5. C# 基础知识 protected 关键字
  6. AsyncTask 解析
  7. Oracle查询表结构的常用语句
  8. css中的hover ,关于li与a标签的问题
  9. 新秀翻译(两)——使用Java通用配置模板方法模式
  10. Python抓取百度百科数据
  11. JS正则密码复杂度校验之:JS正则匹配半角英文符号
  12. Web应用基础
  13. Entity Framework解决sql 条件拼接,完美解决 解决 不支持 LINQ 表达式节点类型“Invoke”【转】
  14. java入门书籍很少介绍的java知识
  15. cheerio笔记
  16. C#编写Windows服务程序 (服务端),client使用 消息队列 实现淘宝 订单全链路效果
  17. linux内存查看工具
  18. Notes 20180505 : 计算机的基础知识
  19. Mybatis中多个参数的问题&amp;&amp;动态SQL&amp;&amp;查询结果与类的对应
  20. Spark1.0.0 编程模型

热门文章

  1. Action、View、ActionResult、ViewResult、ContentResult
  2. Orchard源码:热启动
  3. table中td 内容超长 自动折行 (含字母数字文字)
  4. ayer.prompt 怎样让输入值为空也可以向下执行
  5. Vue2.0学习笔记:Vue事件修饰符的使用
  6. [javaSE] 网络编程(URL)
  7. 一:Java基础
  8. 撩课-Web架构师养成系列(第二篇)-async
  9. 令人头疼的Connection Reset
  10. 【SSH网上商城项目实战26】完成订单支付后的短信发送功能