(土气的名字万里挑一丫丫)

然后这个题是个递推,lz的考场想法:

3个的最好确定,先把3个的确定下来,然后从这个点往前推,从这个点往后推这么算吧qwq

然后码长:也是很nice,最关键的是,我都写的这么复杂了,它居然还是没有ac掉,已经放弃修改这篇(85分代码,不会改了。挂出来求救)代码了qwq(欢迎大佬批评指正,全篇推翻也可以)。

然后题解solution:

首先我们先判断输入的数据是否合法,显然对于每个格子中的数字,只能是0~3之间的数,其它数只要出现就无解。

然后是计算雷,对于a[1]==0||a[1]==2的情况,我们都可以清楚的确定出雷的位置,对于a[1]==3的情况,显然是无解的,而对于a[1]==1的情况,我们需要分1 0和0 1两种情况讨论了。

定义一个int型数组f,表示雷的数量,因为我们有无解的情况,所以可能会出现f[i]<0||f[i]>1的情况,因此不可以开bool数组;

然后根据a[1]的值,先将f[1]f[2]判断出来(对于a[1]==1的情况我们先假定为其中的一种,如果这种情况无解,我们再判断另一种情况)

然后递推:

int dt(){
for(int i=;i<=n;i++){
f[i+]=a[i]-f[i-]-f[i];
if(f[i+]<||f[i+]>) return ;
}
if(f[n+]!=0) return ;
else return ;
}

从i=2开始递推,推到i=n;

对于当前位置kk的地雷数,等于上一个位置kk-1的a(因为a数组表示的是本身,+1,-1的总地雷数)-上一个位置kk-1的地雷数-上上个位置kk-2的地雷数;

画个图感性理解一下:

然后当某个位置的雷>1或<0时,显然就炸了,直接进入无解情况。

然后这个递推,会推到f[n+1],显然如果f[n+1]!=0,也是无解的,因此最后记得判一下;

当a[1]==1并且我们算的第一种情况无解时,我们还需要判断一下第二种情况,所以需要再写一个特判。

CODE:

#include<bits/stdc++.h>

using namespace std;

inline int read(){
int ans=;
char last=' ',ch=getchar();
while(ch>''||ch<'') last=ch,ch=getchar();
while(ch<=''&&ch>='') ans=(ans<<)+(ans<<)+ch-'',ch=getchar();
if(last=='-') ans=-ans;
return ans;
} int n,aa;
int a[],f[]; int dt(){
for(int i=;i<=n;i++){
f[i+]=a[i]-f[i-]-f[i];
if(f[i+]<||f[i+]>) return ;
}
if(f[n+]!=) return ;
else return ;
} int main(){
n=read();
for(int i=;i<=n;i++){
a[i]=read();
if(a[i]>||a[i]<) {
printf("No answer");
return ;
}
} if(a[]==||a[n]==) {
printf("No answer");
return ;
}
if(a[]==){
f[]=f[]=;
}
if(a[]==){
f[]=;f[]=;
}
if(a[]==){
f[]=f[]=;
} aa=dt(); if(aa==&&a[]==){
f[]=;f[]=;
}
aa=dt();
if(aa==) printf("No answer");
else {
for(int i=;i<=n;i++)
printf("%d ",f[i]);
}
return ;
}

end-

【7.9校内test】T1挖地雷的更多相关文章

  1. 2019.7.9 校内测试 T1挖地雷

    这一次是交流测试?边交流边测试(滑稽 挖地雷 这个题是一个递推问题. 首先我们看第一个格子,因为它只影响了它的上面和右上面这两个地方是否有雷. 我们可以分3种情况讨论: 1. 第一个格子的数字是2: ...

  2. 18清明校内测试T1

    消失的数字(number) Time Limit:1000ms   Memory Limit:128MB 题目描述 rsy拥有n个数,这n个数分别是a1,a2,…,an. 后来出现了一个熊孩子zhw, ...

  3. 2019.6.28 校内测试 T1 Jelly的难题1

    这题面有点难理解,建议直接跳到题意解释那一部分(虽然我觉得解释的不大对,但按照解释来做确实能AC): 按照“题意解释”的思路来思考这个题,那么就十分的简单了: 1.首先要读入这个字符矩阵,可以用cin ...

  4. MY TESTS

    励志整理所有的n次考试的博客: [五一qbxt]test1 [五一qbxt]test2 [校内test]桶哥的问题 [6.10校内test] noip模拟 6.12校内test [6.12校内test ...

  5. 【7.24校内交流赛】T1&T2

    T1: 一个脑洞很大的题,将输入的所有数异或起来输出就好了: (话说我为什么这么喜欢用异或啊) #include<bits/stdc++.h> using namespace std; i ...

  6. 【7.10校内test】T1高级打字机

    [题目链接luogu] 这是T1,但是是神仙T1: 对于前100%的数据很好写,直接数组模拟就可以了: (当然也有栈模拟的,据说有模拟炸了的) //50pts#include<bits/stdc ...

  7. 【6.24校内test】T1 江城唱晚

    [题目背景] 墙角那株海棠,是你种下的思念. 生死不能忘,高烛照容颜. 一曲江城唱晚,重忆当年坐灯前, 青衫中绣着你留下的线. ——银临<江城唱晚> [问题描述] 扶苏是个喜欢一边听古风歌 ...

  8. 【6.12校内test】T1单词序列

    [问题描述] 给出两个单词(开始单词和结束单词)以及一个词典.找出从开始单词转换到结束单词, 所需要的最短转换序列.转换的规则如下: 1.每次只能改变一个字母 2.转换过程中出现的单词(除开始单词和结 ...

  9. 【6.18校内test】T1多项式输出

    日常题前废话: 首先so amazing 的一件事,因为在洛谷上立下了的flag,然后这次考试前两道题都是刚刚做过不久的题emmm(相当于白送200吗qwq,但是这阻挡不了我第三题不会的脚步qwq) ...

随机推荐

  1. C# 4.0

    序言 动态绑定-dynamic class Program { static void Main(string[] args) { ; ; // Rest the mouse pointer over ...

  2. Protocol Buffers 开发者指南

    欢迎来到 protocol buffers 的开发者指南.protocol buffers 是一个语言中立,平台中立针对通讯协议,数据存储和其他领域中对结构化数据进行序列化的扩展方法. 本文档主要针对 ...

  3. Angular 文档中链接的修改路径

    在 Angular 文档程序中的左侧链接的修改路径在哪里? 如下图所示的修改路径. 左侧链接的修改路径在 angular-cn\aio\content\navigation.json 这个文件中. 你 ...

  4. HUD 1166:敌兵布阵(线段树 or 树状数组)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Problem Des ...

  5. php的intval函数

    PHP intval() 函数 PHP 可用的函数PHP 可用的函数 intval() 函数用于获取变量的整数值. intval() 函数通过使用指定的进制 . PHP , PHP , PHP 语法 ...

  6. 半径R覆盖最多点

    struct point { double x, y; }; point p[N]; struct alpha { double v; bool flag; bool friend operator ...

  7. oracle判断一个字段为空

    比如 insert into table a (a1,b1)values("a1",''); 对于这种情况,因为表里存的是'',其实是没有内容的,要查询这个字段,不能直接使用 se ...

  8. 各种框架实现了经典的 todo 应用

    http://todomvc.com/ 版权声明:本文为博主原创文章,未经博主允许不得转载.

  9. SpringBoot 使用定时任务动态执行任务

    import com.patient.core.adapter.CorsFilter; import org.mybatis.spring.annotation.MapperScan; import ...

  10. 20175212童皓桢 实验四 Android程序设计

    20175212童皓桢 实验四 Android程序设计 实验内容 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)>并完成相关 ...