当前位置: 首页 > news >正文

信息学奥赛一本通 1449:【例题2】魔板

题目

1449:【例题2】魔板

分析

首先注意:输入是按顺时针给出的,但我们处理时需要按正常顺序排,可以用以下代码读入

string s(8, '0');  // 初始化全零字符串
cin>>s[0]>>s[1]>>s[2]>>s[3];
cin>>s[7]>>s[6]>>s[5]>>s[4];

然后在搜索中,可以使用map,也能用康托展开,就是编程繁琐一些。

三种操作的代码表示

A操作

就是上下两行交换,for从0遍历到3,交换s[i]和s[i+4]即可

string opA(string f) {
	string s = f;
	for (int i = 0; i < 4; i++) swap(s[i], s[i + 4]);
	return s;
}

B操作

按顺序给每格标为t0,t1,...,t7,如下图

执行一次B操作后,变成这样:

因此,代码如下:

string opB(string f)
{
	string s = f;
	swap(s[0], s[3]);
	swap(s[4], s[7]);
	swap(s[1], s[3]);
	swap(s[5], s[7]);
	swap(s[2], s[3]);
	swap(s[6], s[7]);
	return s;
}

C操作

操作一次后如下:

代码:

string opC(string f)
{
	string s = f;
	swap(s[1], s[2]);
	swap(s[1], s[6]);
	swap(s[1], s[5]);
	return s;
}

 知道这些就不难了,剩下的就是广搜。

 

 

相关文章:

  • 算法系列之回溯算法求解数独及所有可能解
  • Mysql篇——SQL优化
  • 工程化与框架系列(33)--前端安全实践指南
  • Android,Java,Kotlin 确保线程顺序执行的多种实现方式
  • Java EE Web环境安装
  • 反射机制的理解
  • 遥感数据获取、处理、分析到模型搭建全流程学习!DeepSeek、Python、OpenCV驱动空天地遥感数据分析
  • 有关Spring 简介和第一个Spring案例:基于XML配置的IoC容器
  • windows10 清理 C 盘
  • AutoGen-构建问答智能体
  • C#程序员接口调用工具与方法
  • Unity进阶课程【二】Mask 组件的使用 UI遮罩效果以及透明抠图效果
  • Linux 部署 Spring Boot 项目, Web项目(2025版)
  • SpringCloud
  • Java8计算集合属性的最小值
  • 基于javaweb的SpringBoot杂物商城系统设计与实现(源码+文档+部署讲解)
  • 正则表达式入门及常用的正则表达式
  • SpringCloudAlibaba项目搭建
  • 数据库原理9
  • Tcp网络通信的基本流程梳理
  • “免签圈”扩容,旅游平台:今年以来巴西等国入境游订单显著增加
  • 陕西宁强县委书记李宽任汉中市副市长
  • 体坛联播|C罗儿子完成国家队首秀,德约结束与穆雷合作
  • 乌方:泽连斯基只接受与普京会谈,拒见其他俄代表
  • 广州地铁十一号线赤沙车辆段工程高坠事故调查报告公布:1人重伤且漏报
  • 珠峰窗口期5月开启 普通人登一次有多烧钱?