hiho一下 第三十周 小Hi小Ho的惊天大作战:扫雷·一

WinXP扫雷·加强版 《WinXP》的“扫雷”游戏,是我们的集体回忆。这个小游戏既锻炼了推理能力,又练习了鼠标操作。 后来,尽管 Win7 也有扫雷游戏,但是已经找不到那种“年少”时期的感觉。而到了 Win10,干脆把这些游戏都取消了。 为了让这个经典游戏重新焕发光彩,我们对《WinXP扫雷》进行改进,称为《WinXP扫雷·加强版》,简称《JF扫雷》。 该版本可以在 WinXP/Win7/Win10 中运行。你不必辛辛苦苦去找XP的电脑,也不用辛辛苦苦装一套虚拟机。 JF是 Just Fun 的意思,所谓“世事无绝对,只有真情趣”,译成英文就是 No Worry, Just Fun ... 立即下载

#1114 : 小Hi小Ho的惊天大作战:扫雷·一

时间限制: 10000ms
单点时限: 1000ms
内存限制: 256MB
描述

故事背景:密室、监视器与充满危机的广场

“我们还是循序渐进,先来考虑这样一个简单化问题:”小Hi思索片刻,道:“在一个大小为2*N的广场,其中第一行里的某一些格子里可能会有至多一个地雷,而第二行的格子里全都为数字,表示第一行中距离与这个格子不超过2的格子里总共有多少个地雷,即第二行的第i个格子里的数字表示第一行的第i-1个, 第i个, 第i+1个,三个格子(如果i=1或者N则不一定有三个)里的地雷的总数。”

“而我们要做的是——找出哪些地方一定是雷,哪些地方一定不是雷。”小Ho道:“不然,我可就要光荣牺牲了。”

提示:寻找关键点——那些一旦决定之后就能让局面豁然开朗的地方。

输入

每个测试点(输入文件)存在多组测试数据。

每个测试点的第一行为一个整数Task,表示测试数据的组数。

在一组测试数据中:

第1行为1个整数N,表示迷宫的宽度。

第2行为N个整数A_1 ... A_N,依次表示迷宫第二行的N个格子里标注的数字。

对于100%的数据,满足1<=N<=10^5, 0<=a_i<=3.<>

对于100%的数据,满足符合数据描述的地图一定存在。

输出

对于每组测试数据,输出2行,其中第一行先输出一定为地雷的格子的数量,然后按照从小到大的顺序输出所有一定为地雷的格子的位置,第二行先输出一定不为地雷的格子的数量,按照从小到大的顺序输出所有一定不为地雷的格子的位置。


样例输入
2
3
1 1 1
10
1 2 1 2 2 3 2 2 2 2 
样例输出
1 2
2 1 3
7 1 3 5 6 7 9 10 
3 2 4 8 


我感觉这个题数据好像有点大,dfs可能会爆内纯,可是看了网上的代码,想想只有dfs了,枚举当前点的状态,然后dfs

具体解释在代码中


#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<map>

#define L(x) (x<<1)
#define R(x) (x<<1|1)
#define MID(x,y) ((x+y)>>1)

#define eps 1e-8
using namespace std;
#define N 100005

int a[N],vis[N],ans[N],n,yes;  //vis是标记有无雷
int YES[N],NO[N];

bool judge(int pos)
{
	if(pos==1)
	{
		if(n==1)
			return vis[pos]==a[pos];
		return a[pos]>=vis[pos];
	}

	if(pos==2)
	{
		int temp=vis[1]+vis[2];
		if(n==2)
			return a[1]==temp&&a[2]==temp;
		return a[1]==temp;
	}

	int temp=vis[pos]+vis[pos-1]+vis[pos-2];

	if(pos==n)
	  return a[pos-1]==temp&&a[pos]==vis[pos]+vis[pos-1];

	return a[pos-1]==temp;
}

void dfs(int pos)
{
	int i,j;

    if(pos==n+1)
	{
		if(!yes)
		{
			yes=1;
			for(i=1;i<=n;i++)   //第一次成功时复制到ans
				ans[i]=vis[i];

			return ;
		}

		for(i=1;i<=n;i++)
			if(ans[i]!=vis[i])   //以后成功的情况看看有雷的地方是不是一定有雷
			  ans[i]=-1;         //如果这种情况有雷,那种情况无雷这个点无法确定
		return ;
	}

	vis[pos]=1;
	if(judge(pos))
		dfs(pos+1);

	vis[pos]=0;
	if(judge(pos))
		dfs(pos+1);
}

void print()
{
	int i,j,x,y;
	x=0,y=0;

	for(i=1;i<=n;i++)
	{
		if(ans[i]==1) YES[x++]=i;
		if(ans[i]==0) NO[y++]=i;
	}

	printf("%d",x);
	for(i=0;i<x;i++)
		printf(" %d",YES[i]);
		printf("\n");

	printf("%d",y);
	for(i=0;i<y;i++)
		printf(" %d",NO[i]);
	printf("\n");
}


int main()
{
	int i,j,t;
	scanf("%d",&t);
	while(t--)
	{
		yes=0;
		scanf("%d",&n);
		for(i=1;i<=n;i++)
			scanf("%d",&a[i]);

		dfs(1);
		print();
	}
	return 0;


}



Silvaco Atlas从头开始(四)——定义材料参数和模型 这部分是关于定义材料参数和模型。 阅读详情

相关推荐

2026年7月19日 从可插拔到共封装:技术路线研究报告

AI 算力的爆发正在重写数据中心光互连的技术路线。本报告对当前并存的四代光互连架构——

weixin_51184047的博客 591

hiho一下 连通性·四 点的双连通分量

hiho一下 连通性·四 点的双连通分量

小张的专栏 902

c++界面开发入门

c++界面开发 DialogBox MessageBox

jiaodou2的博客 6518

hihoCoder_#1190_连通性·四·点的双连通分量(块)

#1190 : 连通性·四 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho从约翰家回到学校时,网络所的老师又找到了小Hi和小Ho。 老师告诉小Hi和小Ho:之前的分组出了点问题,当服务器(上次是连接)发生宕机的时候,在同一组的服务器有可能连接不上,所以他们希望重新进行一次分组。这一次老师希望对连接进行分组,并把一个组内的

一点也不二 1228

GPL vs MIT:独立开发者选择开源协议的法律与商业考量

你可能听过这样的故事:某个开发者用业余时间写了个超好用的工具库,开源后被某大厂悄悄集成到闭源产品里赚得盆满钵满,开发者却连杯奶茶钱都没拿到;也可能听说过另一个案例:开发者选了GPL协议,结果用户修改代码后必须开源,反而推动项目社区快速壮大,最终靠技术服务赚到了钱。这些故事的核心矛盾,都源于开源协议的选择。对于独立开发者(尤其是单枪匹马写代码的个人或小团队),开源协议不是“随便选一个就行”的小事——它是代码的“使用说明书”,更是保护自身权益、规划项目未来的关键工具。

AI天才研究院 1181

ROS中costmap_converter插件的配置与使用

在学习TEB算法的过程中,作者提供了一个插件用于转换代价地图,原始的代价地图是由栅格地图中单元格组成,用于表示障碍物,但单元格占用的计算资源较大,故采用插件将单元格转换成点,线,多边形表示。 插件激活 rospack plugins --attrib=plugin costmap_converter 配置cfg文件 在导航配置文件下,新建costmap_converter_params.yaml #######################################################

weixin_42621524的博客 5905

C语言基础:扫雷游戏的C语言实现(超详图解+源码)

友友们好,今天和大家一起做一个简单的——扫雷小游戏。如下:扫雷的规则很简单。盘面上有许多方格,方格中随机分布着一些雷。你的目标是避开雷,打开其他所有格子。一个非雷格中的数字表示其相邻8格中的雷数,你可以利用这个信息推导出安全格和雷的位置。打开所有安全格将被判定为胜利,打开雷将被判定为失败。

linsc_05的博客 1万+

深入解析高通8155平台音频数据流:从HAL到DSP的完整链路

本文深入解析了高通8155平台音频数据从安卓HAL层到DSP的完整传输链路。以播放场景为例,详细阐述了音频数据如何通过ASoC DPCM框架进行路由、打包,并经由APR协议与DSP交互,最终驱动硬件发声的核心流程,为车载音频系统开发与调试提供了清晰的框架。

rust6ferris的博客 1176

hihocoder #1114 : 小Hi小Ho的惊天大作战:扫雷·一

hihocoder #1114 : 小Hi小Ho的惊天大作战:扫雷·一代码比较简单易懂,直接贴出来了。#include<iostream> #include<vector> #define N 100005 int arr[N]; int ans[2][N]; using namespace std; bool solve(int len, int channel){ int left =

qq_24512331的博客 547

Matlab图像处理频域滤波实现——高斯低通、高通、带通带阻滤波器

如果你想要进一步了解更多的相关知识,

小嘤熊的博客 1万+

下载igv报错:Error loading genome hg38raw.githubusercontent.com...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 993

hiho 第三十周 小Hi小Ho的惊天大作战:扫雷·一

如题:http://hihocoder.com/problemset/problem/1114   时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 故事背景:密室、监视器与充满危机的广场        ×         故事背景:密室、监视器与充满危机的广场 小Hi从昏迷中醒来……已经有2分17秒了,他环顾

zht的专栏 1096

huggingface高速下载模型的实战代码

本文主要介绍了huggingface高速下载模型的实战代码,尤其是无法通过国内源进行下载的huggingface模型,希望能对学习大模型的同学们有所帮助。需要特别说明的是,本文的代码是完全原创的,即能够最大限度利用宽度的速度,而且还能实现断点续传。 文章目录 1. 背景 2. 实战代码

herosunly的博客 29万+

hiho一下第三十周 #1114 小Hi小Ho的惊天大作战:扫雷·一【枚举】

#1114 : 小Hi小Ho的惊天大作战:扫雷·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 故事背景:密室、监视器与充满危机的广场 “我们还是循序渐进,先来考虑这样一个简单化问题:”小Hi思索片刻,道:“在一个大小为2*N的广场,其中第一行里的某一些格子里可能会有至多一个地雷,而第二行的格子里全都为数字,

leibniz_zhang的博客 627

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

hiho一下 第三十周 题目1 : 小Hi小Ho的惊天大作战:扫雷·一

题目1 : 小Hi小Ho的惊天大作战:扫雷·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 故事背景:密室、监视器与充满危机的广场 “我们还是循序渐进,先来考虑这样一个简单化问题:”小Hi思索片刻,道:“在一个大小为2*N的广场,其中第一行里的某一些格子里可能会有至多一个地雷,而第二行的格子里全都为数字,表示第一

小人物的草稿本 1422

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

hiho #1114 : 小Hi小Ho的惊天大作战:扫雷·一

#1114 : 小Hi小Ho的惊天大作战:扫雷·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 故事背景:密室、监视器与充满危机的广场 “我们还是循序渐进,先来考虑这样一个简单化问题:”小Hi思索片刻,道:“在一个大小为2*N的广场,其中第一行里的某一些格子里可能会有至多一个地雷,而第二行的格子里全都为数字,表...

200

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

hiho刷题日记——第三十天小Hi小Ho的惊天大作战:扫雷·一

题目简化版扫雷,只有一行。 给出一行的周围3格中是雷的数量。 判断哪些一定是雷,一定不是雷。 思路因为给出的信息是环环相扣的,不用一个一个去试。 只需要试第一格是否为雷就可以通过数据算出后面是否为雷。 所以只用试两次, 第一次把一格设为雷,算出后面的情况;第二次把第一格设为不是雷,算出后面的情况。 若两次都算出来了,则将两次的情况对比,没有变化的部分就是答案。 若只有一次满足条件,则

AngcFun的博客 1235

hiho 小Hi小Ho的惊天大作战:扫雷·一 扫雷·三

题目链接: 扫雷1 扫雷3 扫雷2并不科学(见扫雷3里的第一个提示,)然后就没写了- - 思路: 扫雷一: 只有一行 枚举第一个格子为有雷 或者 没有雷 然后再往下搜索 得到多个可行解 所有可行解的某个位置都为雷的一定为雷 所有可行解的某个位置都不为为雷的一定为不为雷 扫雷三:思路1:未知的位置只有不超过10个,直接爆力枚举

旧时光 1851

hihoCoder#1119 小Hi小Ho的惊天大作战:扫雷·二

原题地址 没有复杂算法,就是麻烦,写起来细节比较多,比较考验细心,一次AC好开心。 代码: 1 #include <iostream> 2 #include <vector> 3 #include <cstring> 4 #include <cstdlib> 5 6 using na...

dicui3114的博客 173

hiho刷题日记——第三十一天小Hi小Ho的惊天大作战:扫雷·二

题目这次的扫雷是二维的了。根据三种规则做一次判断,判断出一定是雷和一定不是雷的数量。 1.如果某一个被探明的格子里所标的数字为0,那么它相邻的8个格子里的未探明格子被认作是一定不是地雷的格子。 2.如果某一个被探明的格子里所标的数字为K,且它相邻的8个格子里正好有K个没有探明的格子的话,则这K个没有探明的格子被认作是一定是地雷的格子。 3.如果某两个探明了的格子A和B,他们中标明的数字分别为P

AngcFun的博客 1530

hiho一下 第三十一周 模拟

题目1 : 小Hi小Ho的惊天大作战:扫雷·二 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 故事背景:禁区、绿洲与显而易见的判断 给出一张N*M的地图,其中的某些格子已经被探明,探明的格子中都标有一个数字,表明与它相邻的8个格子里的地雷数量,而没有探明的格子里可能会有一些地雷。 现在小Ho仅仅知道如下三条规则: 1.如果某一个被探明的格子里所标的数...

1999 210

hiho一下 第三十二周 搜索

题目1 : 小Hi小Ho的惊天大作战:扫雷·三 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 故事背景:重复、假设与堵上性命的一搏 于是问题来了:给出一张N*M(在经过三条规则的反复洗礼之后,N和M都并不会很大)的地图,其中的某些格子已经被探明,探明的格子中都标有一个数字,表明与它相邻的8个格子里的地雷数量,而没有探明的格子里可能会有一些地雷。 而现在小Ho需...

1999 197

hiho刷题日记——第二十三天最短路径·一

题目给一个无向有权(距离)图,求两点之间最小距离。思路根据给出的数据建立有个无向图。 从出发点开始深度遍历便可。遍历的时候得出出发点到遍历到的点的最短路径。便可得出答案。代码#include<cstdio> #include<cstring> using namespace std;const int MAXN=1000+1; const int MAXM=10000+1; int N,M,S,T

AngcFun的博客 483

github开源项目android,GitHub上最火的40个Android开源项目

Shell入门教程:流程控制(4)case 条件判断case的语法结构: case 待测项 in 样式串1] 命令区域1 ;; (样式串2) 命令区域2 ;; 样式串3) 命令区域3 ;; *) 命令区域 ;; esac 命令区域,可以是单一指令或多行 ...AMap编辑折线、多边形、圆 hiho &num;1114 &colon; 小Hi小Ho的惊天大作战:扫雷&&amp...

weixin_30902415的博客 421

hihocoder 题目类型整理

[ ] 1 最长回文子串 [ ] 2 tire树 [ ] 3 kmp [ ] 4 trie图(AC自动机) [ ] 5 数字三角形 [ ] 6 01背包 [ ] 7 完全背包 [ ] 8 状态压缩 [ ] 9 状态压缩 [ ] 10 后序遍历 [ ] 11 树中的最长路 [ ] 12 树状动态规划 [ ] 13 最近公共祖先·一 [ ] 14 并查集 [ ] 15 最近公共祖先·二 [ ] 16...

weixin_34303897的博客 208
上一篇: HDU 1542 Atlantis 线段树扫面线求面积并
下一篇: HDU 1116 Play on Words(欧拉通路)
左眼皮跳跳~
博客等级 码龄13年 17粉丝 400原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值