USACO: Magic Squares

别再乱试了!用John the Ripper前,先搞懂这几点:Mac环境配置与合法测试指南 本文详细介绍了在Mac环境下如何合法配置和使用John the Ripper进行密码安全测试。从法律边界、环境配置到测试策略,提供全面的合规指南,帮助用户安全评估密码强度,避免法律风险。特别强调仅测试授权文件,并演示了rar和zip压缩文件的密码破解流程。 阅读详情

Magic Squares
IOI'96

Following the success of the magic cube, Mr. Rubik invented its planar version, called magic squares. This is a sheet composed of 8 equal-sized squares:

1234
8765

In this task we consider the version where each square has a different color. Colors are denoted by the first 8 positive integers. A sheet configuration is given by the sequence of colors obtained by reading the colors of the squares starting at the upper left corner and going in clockwise direction. For instance, the configuration of Figure 3 is given by the sequence (1,2,3,4,5,6,7,8). This configuration is the initial configuration.

Three basic transformations, identified by the letters `A', `B' and `C', can be applied to a sheet:

  • 'A': exchange the top and bottom row,
  • 'B': single right circular shifting of the rectangle,
  • 'C': single clockwise rotation of the middle four squares.

Below is a demonstration of applying the transformations to the initial squares given above:

A:
8765
1234
B:
4123
5876
C:
1724
8635

All possible configurations are available using the three basic transformations.

You are to write a program that computes a minimal sequence of basic transformations that transforms the initial configuration above to a specific target configuration.

PROGRAM NAME: msquare

INPUT FORMAT

A single line with eight space-separated integers (a permutation of (1..8)) that are the target configuration.

SAMPLE INPUT (file msquare.in)

2 6 8 4 5 7 3 1 

OUTPUT FORMAT

Line 1: A single integer that is the length of the shortest transformation sequence.
Line 2: The lexically earliest string of transformations expressed as a string of characters, 60 per line except possibly the last line.

SAMPLE OUTPUT (file msquare.out)

7
BCABCCB

 

思路:

哈希(我用的哈希函数是康托展开)+BFS

话说哈希确实是一个极有探究价值的东东,康托用来哈希组合状态是今天才学的,懂了一点原理之后,康托函数也是自己鼓捣出来的,弄好之后再和书上的比较,发现我的思路略微不同,不过效率也不差呀!

 

提交的第一个版本顺利通过所有测试,最慢的一个也就0.043s

 

然后我看代码有点冗长(A、B、C三个函数并排展开写),就写了个函数指针数组来缩减代码,结果提交后奇怪地出现了越界错误,注意,下面的代码是第二个版本的,maxsize加了10之后又通过了测试,最慢0.067s,看来简洁的东西不一定有效率啊

 

输出字符串是逆向的,所以我干脆用字符指针倒移,这样算是违规操作吧?嘿嘿


最后,我在写这个题解的时候才发现一个郁闷的问题:我忘了"60 per line"这事,但是程序通过了测试!难道数据太弱了?

 

不过想想也是,按照完全的操作三叉树,60层深度,3^60已经达到了恐怖的42391158275216203514294433201,大概是4*10E28,就算中间剪掉了很多枝叶,60的深度也应该足够覆盖全部状态8!(40320)了吧?可见做事还是要经大脑好点……

题解:洛谷 P2730 [USACO3.2] 魔板 Magic Squares 题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。可以用颜色的序列来表示一种魔板状态,规定从魔板的左上角开始,沿顺时针方向依次取出整数,构成一个颜色序列。在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板。你要编程计算用最少的基本操作完成基本状态到目标状态的转换,输出基本操作序列。第二行在字典序中最早出现的操作序列,用字符串表示,除最后一行外,每行输出。对于每种可能的状态,这三种基本操作都可以使用。,用空格分开,不换行,表示目标状态。 阅读详情

相关推荐

基于WEB的报价管理系统的设计与实现

该系统采用B/S模式,后台运用SpringMVC和MyBatis搭建,利用MySQL数据库,来组织存储和管理数据,使用tomcat服务器向外提供服务。使用该系统对外有利于提高企业的综合竞争力,对内有利于提高成本管理和控制的水平,简化了报价流程、提高了工作效率、精简了报价机构,降低了成本。研究和掌握必要的信息采集和数据查询技术,是各个企业,事业单位信息化的一个重要标志。当前大多数企业采取的报价方式仍然是用EXCEL表格和人工的方式,这不仅不利于大量数据的总结,更不利于对销售利润的控制。

m0_60918862的博客 999

洛谷:P2730 [USACO3.2] 魔板 Magic Squares Java题解

本题通过BFS算法有效地解决了魔板状态转换问题。理解状态表示和操作实现是解决此类问题的关键。这种方法可以推广到其他状态空间搜索问题。

Java爱好者,热爱分享,信仰开源! 557

南邮-软件设计实验(C++版)

南邮软件设计 A档 一、分数统计 课题内容:   设计一个分数统计程序。包括学生信息的输入输出以及排序。通过该课题全面熟悉数组、字符串、文件的使用,掌握程序设计的基本方法及友好界面的设计。 课题要求: (1)输入某班级学生的姓名、分数; (2)对(1)的分数进行降幂排列并输出; (3)具有输入输出界面。 示例代码: #include<bits/stdc++.h> using...

Dainelcw 1万+

[USACO3.2] 魔板 Magic Squares

在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板。这是一张有812348765。

m0_74420310的博客 654

(R,线性回归)R语言里的模型诊断图(Residuals vs Fitted,Normal QQ , Scale-Location ,Residuals Leverage)

线性回归,是概率统计学里最重要的统计方法,也是机器学习中一类非常重要的算法。线性模型简单理解非常容易,但是内涵是非常深奥的。尤其是线性回归模型中的Diagnostics plot的阅读与理解一直被认为是线性回归中的一个难点。 在任何线性模型中,能够直接“lm”(模型有意义),既要考虑各个参数的t-test所得出的p-value,也要考虑总体模型F-检验得出的p-value。在这之后,还要清楚一个...

qq_35837578的博客 7万+

树莓派教程(基于python编程)--入门篇

一:格式化SD卡 SD卡插入读卡器连接电脑,使用SDFormatter对SD卡进行格式化 (重装烧录也要进行着SD卡格式化操作) 二:下载官方镜像 http://downloads.raspberrypi.org/raspbian_latest 三:烧录SD卡 使用Win32DiskImager将镜像烧录到格式化后的SD卡 SD卡盘根目录(/boot)下新建一个命名为ssh的...

qq_42109746的博客 6万+

USACO3.2.5 Magic Squares (msquare)

标准的宽搜,应该没什么难度吧。/* ID:shijiey1 PROG:msquare LANG:C++ */ #include #include #include #include #include #include #include using namespace std; struct Node { int deep; string stat, trans; Node(

Shion的专栏 642

MFC Windows 程序设计[105]之彩色滚动条(附源码)

MFC是微软公司提供的一个类库(class libraries),用以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。有很多初学MFC的小伙伴们都觉得MFC比较难学,看书吧,看了就忘了,网上的一些教程又是写的含糊不清,故而学习起来很吃力...... 故此,本专栏亲自研究,实践,由易到难,层层深入,将调试过程中所遭所遇进行详细讲解,注意事项进行一一列举,希望能够帮助到各位初学MFC的小伙伴,避免走弯路,费时费力。

hnjzfwy的博客 518

USACO 魔板 Magic Squares

题意还是很简单的,但是做起来就不是那么简单了 第一步就是规划好存储方式,还有类似判断的数组 unordered_map<string,int> mp; unordered_map<string,pair<char,string>> pre; queue<string> q; 把这个定义出来,其实思路就出来了: First: 就是先把 三个操作所生成的字符串str搞出来,然后用bfs进行搜索,如果这个路径还没走过的话即mp.count(str) == 0,我们

cainiao的博客 288

【异常】Milvus 向量数据库字段缺失错误分析与解决 MilvusVectorStoreServiceV2 - Failed to insert batch [0-1]: The field:

本文分析了Milvus向量数据库插入操作中出现的字段缺失错误。错误显示age_mode字段未提供,导致批量插入失败。根本原因是Milvus Schema要求所有定义字段必须存在,但代码中对部分字段采用条件添加方式。解决方案是将条件添加改为始终添加,为可能为null的字段提供空字符串默认值。文章总结了Schema约束、防御性编程等经验,并建议通过Schema变更检查、单元测试覆盖和数据校验层等预防措施避免类似问题。该问题影响product、mac、source等多个字段,修改后确保了数据插入的可靠性。

奶爸的编程之路,也就一周冷个三天 406

YOLOv8推理程序

YOLOv8单独推理,有时候我们自定义的模块算子无法正常转换为其他框架,而且需要做成应用,因此需要一个单独推理的程序,返回的是识别后的照片还有各个类别及其对应数量。文章最后给出Flask封装为Server以及调用的实例还有Client请求代码,支持几十路多线程并发,只需加载一次模型,后边推理即可。

AIOT魔法师 698

USACO3.2--Magic Squares+经典搜索

类似于八数码的一道经典搜索题,思路基本也一样.我是用康拓展开进行的判重.代码如下:/* ID: 15674811 LANG: C++ TASK: msquare */#include<iostream> #include<cstdio> #include<cstring> #include<queue> #include<algorithm> using namespace std;#define

荒野孤鹰 767

从一个 ASIN 看透亚马逊:商品模型背后的增长飞轮

在亚马逊电商体系中,每件商品背后都有一套严密的商品建模逻辑。本篇文章以“ASIN 的一生”为线索,系统拆解了亚马逊的商品模型:从飞轮战略出发,剖析 SDP(Single Detail Page)机制如何实现标准化展示;再到 ASIN 编码、父子变体结构与 Offer 分离模型,逐层解析商品信息如何被建构、聚合与呈现。通过图解与案例,文章帮助读者理解商品建品流程、同款聚合原则、价格控制机制等核心逻辑,避免常见运营误区,是一份面向运营、产品、技术人员的实用参考指南。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 13万+

USACO 3.2.5 Magic Squares

看到题目,必然是宽搜无疑了 主要是对于状态的储存方法,一开始我很脑残的用 9 进制数来存状态,写到一半发现内存会超。。 重新考虑下,因为最多只有 8! 种状态,所以直接存每种状态有没有出现过是可行的。 TRANS 函数将每个状态映射到一个数(按 1 到 8 的全排列 从小到大顺序第 k 个, 就把当前状态映射到 k ) 比如 1 2 3 4 5 6 7 8 映射到 1, 2 1 3 4 5

IcEternal 599

IMSL CNL 7.0.0 (x86-64)Crack

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

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

P2730 魔板 Magic Squares(BFS模拟)

题目背景 在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板。这是一张有8个大小相同的格子的魔板: 1 2 3 4 8 7 6 5 题目描述 我们知道魔板的每一个方格都有一种颜色。这8种颜色用前8个正整数来表示。可以用颜色的序列来表示一种魔板状态,规定从魔板的左上角开始,沿顺时针方向依次取出整数,构成一个颜色序列。对于上图的魔板状态,我们用序列(1,2,3,4,5,6,7,8...

一身清贫怎敢入繁华 516

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

[洛谷P2730] 魔板 Magic Squares

洛谷题目链接:魔板 题目背景 在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板。这是一张有8个大小相同的格子的魔板: 1 2 3 4 8 7 6 5 题目描述 我们知道魔板的每一个方格都有一种颜色。这8种颜色用前8个正整数来表示。可以用颜色的序列来表示一种魔板状态,规定从魔板的左上角开始,沿顺时针方向依次取出整数,构成一个颜色序列。对于上图的魔板状态,我们用序列(1,2,3...

dengtun2502的博客 221

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

USACO Magic Squares

1、这是96年的一道IOI题目,一道恶心的搜索。。。最近USACO快做哭了,根本没把我当初学者T T。。。谁说“做完前三章,稳拿一等奖”啊,岂止一等奖,明明可以参加NOI了。。。 2、刚开始我脑子发昏,竟然倒序输出,所以怎么都不对,没法输出字典序最小,还以为是搜索顺序的问题,硬是把程序改复杂了。。。 3、算法嘛,就是bfs+康托展开+逆康托展开即可。注意题目给出的数字顺序和常规不太一样,初始状

505

[USACO3.2]魔板 Magic Squares

在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板。这是一张有8个大小相同的格子的魔板:1 2 3 48 7 6 5。

2301_77920554的博客 316

USACO-Magic Squares(bfs)

题目链接:USACO-Magic Squares很容易看出是一个bfs,不过要想怎样表示状态。 可以用hash来搞,也可以用stl的set来判重,这里用了stl的set。 因为bfs是先’A’然后’B”C’地进队,所以保证同一层上每个状态的插入顺序的字典序都是最小的/* ID: xdujlx1 PROG: msquare LANG: C++ */ #include<bits/stdc++.h>

On the way 500

P2730 [USACO3.2]魔板 Magic Squares

稚名真昼可爱捏! 在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板。这是一张有8个大小相同的格子的魔板:1 2 3 48 7 6 5。

CH_canghan的博客 365

USACO magic squares

写了好久好久, 纯宽搜内存不够用,后来用hash来剪枝。。。。 /* ID: kainste2 PROG: msquare LANG: C++ */ #include #include #include #include #include #include // isalpha, isdigit, isprint, toupper, tolower #include #in

222

USACO Feed Ratios, Magic Squares

本质上讲,这两道题都是数学题,ratios是行列式解线性方程组,squares是组合数学。可见ACMer数学基础好确实是非常重要的。 1、Feed Ratios 所求的实际上就是一个最简配比 x, y, z, w,使得 x(a1,b1,c1) + y(a2,b2,c2) + z(a3,b3,c3) = w(g1,g2,g3),我线性代数也忘得差不多了,不过对克莱姆法则还有一点印象。

左手为你画情 3710

# [USACO3.2] 魔板 Magic Squares

在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板。这是一张有812348765。

qq_39456436的博客 863

「一本通 1.4 例 2」[USACO3.2]魔板 Magic Squares

[USACO3.2]魔板 Magic Squares 题目背景 在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板。这是一张有8个大小相同的格子的魔板: 1 2 3 4 8 7 6 5 题目描述 我们知道魔板的每一个方格都有一种颜色。这8种颜色用前8个正整数来表示。可以用颜色的序列来表示一种魔板状态,规定从魔板的左上角开始,沿顺时针方向依次取出整数,构成一个颜色序列。对于上图的魔板状态,我们用序列(1,2,3,4,5,6,7,8)来表示。这是基本状态。 这里提供三种基本操作,

绿树公司的博客 366

usaco Magic Squares

这道题目,以前写过类似的。所以这次看了题目后,还是有头绪的。 不过这道真的很麻烦啊! 用到了Hash + BFS 1、2、3、4、5、6、7、8不管将它们怎样变换,最多也就8! = 40320 种情况,所以可以使用BFS算法枚举下,打表即可。这是总的思想。 但1……8是字

Guogeer 1006
上一篇: USACO: Feed Ratios
下一篇: USACO: Sweet Butter
Geterns
博客等级 码龄17年 16粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值