116.飞行员兄弟

题目链接

在这里插入图片描述
在这里插入图片描述

思路

明天补

代码

#include<bits/stdc++.h>
using namespace std;
const int N = 10;
char g[N][N];
char backup[N][N];
int ans = 0x3f3f3f3f;
vector<pair<int, int>> v;
int get(int x, int y)
{
	return x * 4 + y;
}
void turn (int x, int y)
{
	int dx = x;
	int dy = y;
	if (g[dx][dy] == '-') g[dx][dy] = '+';
	else g[dx][dy] = '-';
	
	dx = x;
	dy = y;
	while (1)
	{
		dx = dx - 1;
		dy = dy;
		if (dx < 0 || dx >= 4 || dy < 0 || dy >= 4)
		{
			break;
		}
		if (g[dx][dy] == '-') g[dx][dy] = '+';
		else g[dx][dy] = '-';
	}
	
	dx = x;
	dy = y;
	while (1)
	{
		dx = dx + 1;
		dy = dy;
		if (dx < 0 || dx >= 4 || dy < 0 || dy >= 4)
		{
			break;
		}
		if (g[dx][dy] == '-') g[dx][dy] = '+';
		else g[dx][dy] = '-';
	}
	
	dx = x;
	dy = y;
	while (1)
	{
		dx = dx ;
		dy = dy - 1;
		if (dx < 0 || dx >= 4 || dy < 0 || dy >= 4)
		{
			break;
		}
		if (g[dx][dy] == '-') g[dx][dy] = '+';
		else g[dx][dy] = '-';
	}
	
	dx = x;
	dy = y;
	while (1)
	{
		dx = dx ;
		dy = dy + 1;
		if (dx < 0 || dx >= 4 || dy < 0 || dy >= 4)
		{
			break;
		}
		if (g[dx][dy] == '-') g[dx][dy] = '+';
		else g[dx][dy] = '-';
	}
}
int main()
{
	for (int i = 0; i < 4; i ++ ) cin >> g[i];
	
	for (int op = 0; op < 1 << 16; op ++ )
	{
//		cout << op;
		vector<pair<int, int>> p1;
		memcpy(backup, g, sizeof g);
		int num = 0;
		//这里采用遍历坐标的方法,访问每一位
		for (int i = 0; i < 4; i ++ )
		{
			for (int j = 0; j < 4; j ++ )
			{
				int x = get(i, j); 
//				cout << x << endl;
				if (op >> x & 1 == 1)
				{
//					cout << 2 << endl;
					turn(i, j);
//					cout << i << " " << j << endl;
//					for (int xx = 0; xx < 4; xx ++ )
//					{
//						for (int yy = 0; yy < 4; yy ++ )
//						{
//							cout << g[xx][yy];
//						}
//						cout << endl;
//					}
//					cout << endl;
					num ++;
					p1.push_back({i, j});
//					cout << i << " " << j << endl;
				}
			}
		}
//		cout << num << endl;
//		for (auto i : v)
//		{
//			cout << i.first << " " << i.second << endl;
//		}
		int f = 0;
		for (int i = 0; i < 4; i ++ )
		{
			for (int j = 0; j < 4; j ++ )
			{
				if (g[i][j] == '+')
				{
					f = 1;
					break;
				}
			}
		} 
		
		if (!f)
		{
			if (num <= ans)
			{
				v = p1;
				ans = num;
			}
			
		}
		memcpy(g, backup, sizeof backup);
	}
	cout << ans << endl;
	for (auto i : v)
	{
		cout << i.first + 1 << " " << i.second + 1 << endl;
	}
	return 0; 
 } 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/146239.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

​软考-高级-系统架构设计师教程(清华第2版)【第5章 软件工程基础知识(190~233)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第5章 软件工程基础知识&#xff08;190~233&#xff09;-思维导图】 课本里章节里所有蓝色字体的思维导图

LeetCode【238】除自身意外的数组的乘积

题目&#xff1a; 思路&#xff1a; https://zhuanlan.zhihu.com/p/109306706?utm_id0 代码&#xff1a; int n nums.length;int[] l new int[nums.length];int[] r new int[nums.length];l[0] 1;r[n-1] 1;for (int i1;i<nums.length;i) {l[i] l[i-1] * nums[i-1]…

Java基于itextPDF实现pdf动态导出

Java基于itextPDF实现pdf动态导出 1、制作PDF导出模板2 、集成itextpdf3 、编写实体4 、编写主要代码5、编写controller并测试补充&#xff1a;踩坑记录 现在的业务越来越复杂了&#xff0c;有些业务场景已经不能满足与EXCEL导出和WORD导出了&#xff0c;例如准考证打印&#x…

PCA9698的IIC转接GPIO控制N路灯

PCA9698验证灯的办法和PCA9535验证6路数字继电器&#xff0c;编译成ko直接Insmod&#xff0c;然后查看/dev/节点有了吗&#xff1f;然后用iictool命令往对应iic地址上面写数据&#xff0c;看看灯亮灭或者听继电器开关声响&#xff0c;至于写多少&#xff0c;研究芯片手册上面参…

03 # 类型基础:动态类型与静态类型

通俗定义 静态类型语言&#xff1a;在编译阶段确定所有变量的类型 编译阶段确定属性偏移量用偏移量访问代替属性名访问偏移量信息共享 动态类型语言&#xff1a;在执行阶段确定所有变量的类型 在程序运行时&#xff0c;动态计算属性偏移量需要额外的空间存储属性名所有对象的…

Ansys Lumerical | 用于增强现实系统的表面浮雕光栅

在本示例中&#xff0c;我们使用 RCWA 求解器设计了一个斜面浮雕光栅 (SRG)&#xff0c;它将用于将光线耦合到单色增强现实 (AR) 系统的波导中。光栅的几何形状经过优化&#xff0c;可将正常入射光导入-1 光栅阶次。 然后我们将光栅特性导出为 Lumerical Sub-Wavelength Model …

Xshell+Xftp通过代理的方式访问局域网内网服务器

最近在部署项目时遇到只有1台服务器拥有公网ip&#xff0c;其它服务器只有局域网ip&#xff0c;当然其它服务器可以正常访问网络&#xff0c;例如如下模型。之前访问其它几台服务器&#xff0c;都是先通过登录公网IP服务器&#xff0c;然后在Xshell里面执行ssh远程连接&#xf…

Android Matrix的使用详解(通过矩阵获取到图片缩放比例和角度)

网上查了好久相关的资料&#xff0c;都没有明确的答案。最终通过多次测试结果&#xff0c;结合安卓定义的矩阵含义&#xff0c;推算出来矩阵的数学含义以及相关的计算公式 1.获取Matrix矩阵&#xff1a; Matrix matrix new Matrix(); float[] matrixValues new float[9]; …

ArkUI实战,深入浅出OpenHarmony应用开发

前言 | 《ArkUI实战》《ArkUI实战》深入浅出的介绍了OpenHarmony开发框架ArkUI组件的使用和应用开发流程&#xff0c;是OpenHarmony应用开发的必备电子书。https://www.arkui.club/ OpenHarmony开发资料归档__南先森-Laval社区OpenHarmony入门看这里 _南先森 Laval社区https:/…

uniapp+vite+vue3开发跨平台app,运行到安卓模拟器调试方法

因为没有使用hbuilder开发uniapp&#xff0c;而是使用了vscode和vite来开发的&#xff0c;所以怎么将这个程序运行到安卓模拟器调试开发呢&#xff1f;其实方法很简单&#xff0c;使用android studio创建一个模拟器或者其他mumu模拟器&#xff0c;然后将项目使用hbuilder打开&a…

IOS上架流程

准备 开发者账号完工的项目 上架步骤 一、创建App ID二、创建证书请求文件 &#xff08;CSR文件&#xff09;三、创建发布证书 &#xff08;CER&#xff09;四、创建Provisioning Profiles配置文件 &#xff08;PP文件&#xff09;五、在App Store创建应用六、打包上架 一、…

STM32中独立看门狗和窗口看门狗的使用方法

独立看门狗&#xff08;Independent Watchdog&#xff0c;IWDG&#xff09;和窗口看门狗&#xff08;Window Watchdog&#xff0c;WWDG&#xff09;是STM32微控制器中提供的两种看门狗定时器。看门狗定时器是一种硬件计时器&#xff0c;用于监视系统的运行状态&#xff0c;并在…

ORACLE数据库实验总集 实验一 Oracle数据库安装与配置

一、实验目的 &#xff08;1&#xff09;掌握 Oracle数据库服务器的安装与配置 &#xff08;2&#xff09;了解如何检查安装后的数据库服务器产品&#xff0c;验证安装是否成功。 &#xff08;3&#xff09;掌握 Oracle数据库服务器安装过程中出现的问题的解决方法。 二、实验…

Java继承和多态(2)

&#x1f435;本篇文章将对多态的相关知识进行讲解 一、向上转型 向上转型是实现多态的条件之一&#xff1b;向上转型是让子类对象转换为父类对象或者是让父类的引用指向子类对象&#xff0c;直观的表现形式就是将子类的对象赋值给父类对象的引用&#xff1b;下面讲解向上转型…

gdb详解【Linux知识贩卖机】

你背朝太阳&#xff0c;就只能看到自己的影子。 --纪伯伦语录 文章目录 简介准备常用命令查看代码&#xff08;list&#xff09;运行&#xff08;run&#xff09;打断点&#xff08;break&#xff09;逐语句&#xff08;step&#xff09;逐过程&#xff08;next&#xff09;完成…

电源管理芯片知识分享:电源芯片的特点及故障检测方法

电源管理芯片用于对电源的控制和管理&#xff0c;提高设备的性能&#xff0c;被广泛应用于智能家居、电子商务、能源管理、汽车等领域&#xff0c;是现代电子设备不可缺少的部分。因此&#xff0c;对于电源管理芯片的检测也是十分重要的&#xff0c;发现其故障并及时解决&#…

MySQL8.0学习笔记

1. CMD命令 1.1 数据库启动与停止 (1) 启动数据库&#xff1a;net start mysql80 (2) 停止数据库&#xff1a;net stop mysql80 1.2 数据库连接与退出 (1) 连接数据库&#xff1a;mysql [-hlocalhost -P3306] -uroot -p[123456] // 本地数据库可省略-h -P (2) 退出数据库…

2023年亚太杯数学建模思路 - 案例:ID3-决策树分类算法

文章目录 0 赛题思路1 算法介绍2 FP树表示法3 构建FP树4 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法&#xff0c;就是频繁模…

Leetcode刷题详解——太平洋大西洋水流问题

1. 题目链接&#xff1a;417. 太平洋大西洋水流问题 2. 题目描述&#xff1a; 有一个 m n 的矩形岛屿&#xff0c;与 太平洋 和 大西洋 相邻。 “太平洋” 处于大陆的左边界和上边界&#xff0c;而 “大西洋” 处于大陆的右边界和下边界。 这个岛被分割成一个由若干方形单元格…

B : 赫夫曼编码长度

Description 每行一个大小写英文字母组成的字符串&#xff0c;长度不大于 1000&#xff0c;通过前缀编码后最短的编码长度。 Input 每组数据一行&#xff0c;大小写英文字母 Output 每组数据输出赫夫曼编码长度 Sample 思路&#xff1a; string res "";//用于…