HDU 1667 The Rotation Game

数据库decimal类型详解:精度、标度与金额计算避坑指南 在关系型数据库中,浮点数精度丢失是常见问题,尤其涉及金额计算时,一分钱误差都可能导致对账失败。decimal类型通过十进制存储方式,将小数当作定点数处理,避免了二进制转换误差,确保运算结果精确。其核心在于精度和标度的合理定义,以及运算舍入规则的控制。在电商订单、汇率转换、税务计算等场景中,decimal是保障数据准确性的关键技术。理解其存储原理和实操细节,能有效规避隐式转换、聚合函数精度等常见坑点,提升系统可靠性。 阅读详情

参考文章:http://blog.youkuaiyun.com/urecvbnkuhbh_54245df/article/details/5856756

The portal:http://acm.hdu.edu.cn/showproblem.php?pid=1667


#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <iostream> 

char route[105];

bool Accord(const int * Temp) {
	if(Temp[8] != Temp[7] || Temp[9] != Temp[7] || Temp[12] != Temp[7] || Temp[13] != Temp[7] 
		|| Temp[16] != Temp[7] || Temp[17] !=Temp[7] || Temp[18] != Temp[7]) {
		return false;
	}
	return true;
}

int Current_max_num(const int * Temp) {
	int Count_array[4];
	memset(Count_array,0,sizeof(Count_array));
	Count_array[Temp[ 7]] ++ ; Count_array[Temp[ 8]] ++ ; Count_array[Temp[ 9]] ++ ; 
	Count_array[Temp[12]] ++ ; Count_array[Temp[13]] ++ ; Count_array[Temp[16]] ++ ; 
	Count_array[Temp[17]] ++ ; Count_array[Temp[18]] ++ ;
	int ret = Count_array[1];
	if(Count_array[2] > ret)  ret = Count_array[2]; 
	if(Count_array[3] > ret)  ret = Count_array[3];
	return ret; 
}

void Change_state(int * Temp,const int * Map,int a1,int a2,int a3,int a4,int a5,int a6,int a7) {
	for(int i = 1 ; i <= 24 ; i++) {
		Temp[i] = Map[i];
	}	
	int temp_int = Temp[a1];
	Temp[a1] = Temp[a2];Temp[a2] = Temp[a3];Temp[a3] = Temp[a4];
	Temp[a4] = Temp[a5];Temp[a5] = Temp[a6];Temp[a6] = Temp[a7];
	Temp[a7] = temp_int;
}

bool DFS(const int * Map,const int depth,const int current_depth,int pre_direction,int & res) {
	if(depth - current_depth < 8 - Current_max_num(Map)) {
		return false;
	}
	if(depth < current_depth) {
		return false;
	}
	int Temp[30];
	for(int i = 1 ; i <= 8 ; i++) {
		if((i == 1 && pre_direction == 6 )||(i == 6 && pre_direction == 1))continue;
		if((i == 2 && pre_direction == 5 )||(i == 5 && pre_direction == 2))continue;
		if((i == 3 && pre_direction == 8 )||(i == 8 && pre_direction == 3))continue;
		if((i == 4 && pre_direction == 7 )||(i == 7 && pre_direction == 4))continue;
		switch( i ) {
			case 1: route[current_depth] = 'A'; Change_state(Temp,Map, 1, 3, 7,12,16,21,23);break; 
			case 2: route[current_depth] = 'B'; Change_state(Temp,Map, 2, 4, 9,13,18,22,24);break;
			case 3: route[current_depth] = 'C'; Change_state(Temp,Map,11,10, 9, 8, 7, 6, 5);break;
			case 4: route[current_depth] = 'D'; Change_state(Temp,Map,20,19,18,17,16,15,14);break;
			case 5: route[current_depth] = 'E'; Change_state(Temp,Map,24,22,18,13, 9, 4, 2);break;
			case 6: route[current_depth] = 'F'; Change_state(Temp,Map,23,21,16,12, 7, 3, 1);break;
			case 7: route[current_depth] = 'G'; Change_state(Temp,Map,14,15,16,17,18,19,20);break;
			case 8: route[current_depth] = 'H'; Change_state(Temp,Map, 5, 6, 7, 8, 9,10,11);break;
		}
		if(Accord(Temp)) {
			route[current_depth+1] = '\0';
			res = Temp[7];
			return true;
		}
		if(DFS(Temp,depth,current_depth+1,i,res)){
			return true;
		}
	}
	return false;
}

void Deal_with() {
	int Map[30];
	while(1) {
		scanf("%d",Map+1);
		if(Map[1] == 0) break;
		for(int i = 2 ; i <= 24 ; i++) {
			scanf("%d",Map+i);
		}
		if(Accord(Map)) {
			puts("No moves needed");
			printf("%d\n",Map[7]);
		}
		else {
			int depth = 1;
			int res;
			while(1) {
				if(DFS(Map,depth,0,-1,res)) {
					break;
				}
				depth ++;
			}
			printf("%s\n",route);
			printf("%d\n",res);
		}
	}
}

int main(void) {
	//freopen("a.in","r",stdin);
	Deal_with();
	return 0;
}

STM32F1的USB接口-自定义HID 设置USB VID:1155 PID :22352。 阅读详情

相关推荐

机器学习【学校智慧食堂及其应用】

本文主要介绍机器学习【智慧食堂及其应用】

qq_201729558 2570

高精度计算2的n次幂

#include&lt;iostream&gt; #include&lt;cstring&gt; #include&lt;cstdio&gt; #include&lt;string&gt; #include&lt;vector&gt; #include&lt;cstdlib&gt; #include&lt;algorithm&gt; using namespace std; char a[1005

hxs的博客 2970

BCM-BCP-DRP-运维管理之故障管理——故障的分类与处理流程

ITSM Business Continuity Manage(BCM) BusinessContinuityPlan(BCP) 偏业务 DisasterRecoveryPlan(DRP) 偏IT 天塌了,考虑在天塌了的状态下做什么,怎么开展业务就是BCP; 天塌了,考虑怎么把天撑回去,就是DRP。 DRP+BCP+供应链管理+危机管理等就是BCM (业务连续性管...

mmgithub123的博客 2720

POJ 2286 The Rotation Game

第一次写IDA*。。。。 The Rotation Game Time Limit: 15000MS   Memory Limit: 150000K Total Submissions: 4915   Accepted: 1635 Description The rotation game uses a # shaped b

码代码的猿猿 1737

FLUX.1 LoRa 微调

微调的好处:可以让你突破换脸这种输入图片的场景约束,微调好的模型可以让你真正的文生图。换脸只能根据输入的图片和视频来生成内容。

szmars的博客 3621

用数据分析优化彩票决策:放弃预测,专注理性投入

彩票本质上是负和博弈的概率系统,其核心并非号码预测,而是对玩法规则、返奖率(RTP)、投入策略与心理约束的量化决策。基于组合数学与二项分布的分析方法,可精确计算各奖项概率、评估不同玩法的实际回报效率,并构建个人资金-风险-目标模型。数据的价值不在于打破随机性,而在于识别非随机环节——如奖池跃升期的RTP波动、固定奖的保底收益、冷热号背后的分奖博弈结构。这种以决策优化为导向的数据实践,适用于将彩票视为受控实验的理性参与者,而非追求玄学中奖的投机者。

frank1998819 641

hdu 1667 The Rotation Game(IDA*)

题目大意:         有一个井字形结构的图形,每条线上7个数字(1,2,3,),每次可以从八个方向将一条线上的数字循环移动1个距离,问经过最少几次什么操作,可以将图形中间的八个方块变成同一种数字。 解题思路:         使用IDA*进行搜索,估价函数为中间八个方块中,不是最多的数字的个数和。 注意点:         题目的输入和存储都不直观,需要十分细心。 代码: #i

accelerator_2016的博客 633

SpringCloud最新最全面试题

在服务注册与发现中,有一个注册中心。当服务器启动的时候,会把当前自己服务器的信息比如服务地址通讯地址等以别名方式注册到注册中心上。另一方(消费者服务提供者),以该别名的方式去注册中心上获取到实际的服务通讯地址,然后再实现本地RPC调用RPC远程调用框架核心设计思想:在于注册中心,因为使用注册中心管理每个服务与服务之间的一个依赖关系(服务治理概念)。在任何RPC远程框架中,都会有一个注册中心存放服务地址相关信息(接口地址)。

qq_38196449的博客 4328

HDU-1667 The Rotation Game(IDA*)

题意 https://www.luogu.org/problemnew/show/UVA1343 思路 首先枚举终态是 1,2,31,2,31,2,3 中的哪一个,然后再把 242424 个数字压成一个长度为 242424 的 010101 串(111 表示终态的数字),直接用 int\text{int}int 来表示这个数。 可以先打表出每一个操作,转动了哪些位置,然后就可以很快的挪动这个010...

Paulliant的博客 457

YOLOv8改进 | Conv篇:基于FasterBlock与C2f结构的二次创新,参数量下降70万【附保姆级代码】

通过引入FasterBlock二次创新C2f结构,我们成功地对YOLOv8模型进行了优化,显著降低了其参数量,并提升了推理速度,而精度保持不变甚至有所提升。该模型在多个实际应用场景中展现出了优异的性能,尤其是在嵌入式设备、移动端和自动驾驶等领域,具有广泛的应用潜力。未来的研究将进一步优化模型结构,探索更多的应用场景,为目标检测技术的发展做出贡献。

一键难忘的博客 3214

c语言实现求一个矩阵特征值和特征向量

前言 求矩阵的特征值,主要是用的QR分解,在我的有一次博客里,我已经详细地给出了计算的过程,大家有兴趣可以去看下,经过几天的钻研,终于完成了整个的eig算法。下面我将把我的整个代码附上,有不懂的可以问我,欢迎一起讨论学习! 这是对上一次的修改版,上一次写的程序是在C++编译环境下编译的,所以放在c里面编译有些会出错。 最后,如果有不对的地方希望大...

qq_36417014的博客 2万+

HDU 1667 The Rotation Game(IDA*)

The Rotation Game#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;algorithm&gt; using namespace std; int map[10][10]; int _hash[8] = {3, 5, 3, 5, 5, 3, 5, 3};...

ccshijtgc的专栏 227

Autosar NvM配置-手动配置Nvblock及使用-基于ETAS软件

NVM作为存储协议栈中最顶层的模块,是必须要掌握的。目前项目基本使用MCU带的Dflash模块,使用Fee模拟eeprom。在项目前期阶段,应该充分讨论需要存储的内容,包括应用数据,诊断数据等,用以评估Dflash空间是否够用。本文基于ETAS软件介绍NVBlock配置生成NVM参数及使用。使用NVBlock配置生成,基本不用手写代码,还是比较方便的。对于Nv block的划分,建议将同时写的一类数据放到一个block中,因为block除了data以外,Fee还会增加一些header数据,占用不少内存。

赞的博客 1884

The Rotation Game HDU - 1667

The Rotation Game HDU - 1667

weixin_29216119的博客 873

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

hdu1667 The Rotation Game

题目描述:你有一个#。有8个不同方向可以动,编号依次为A-H。求使其中心8个块数字变成相同时,最短字典序最小的字符串以及中心的数字。 题解: 对于这种状态极为发散的搜索,我们可使用A*。而这道题要求最短,我们可以采用IDA*。 估价函数h=8-(中心块上出现最多的数的出现次数)。 因为每动一次只踢出去一个格,拉进来一个格。 代码: #include<cstdio&g...

a6t2007的博客 186

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

hdu 1667:The Rotation Game

ida

weixin_46266058的博客 190

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

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

HDU-1667 The Rotation Game(IDA*)

The rotation game uses a # shaped board, which can hold 24 pieces of square blocks (see Fig.1). The blocks are marked with symbols 1, 2 and 3, with exactly 8 pieces of each kind.

idealism_xxm的专栏 486

The Rotation Game hdu-1667

这题的难点在于移动的表示和如何标记已经访问过的图; 参考了大牛的代码: https://www.cnblogs.com/tt123/p/3411377.html ida做法有个好处,不需要去标记图,只要不往回走就行,ida会卡住有限步数, 在最优的步数情况下,同一个图并不会重复访问。 这是ida相对bfs的一个很大的有点。 代码如下: #include <cstdio> #includ...

bloom_er的博客 181

HDU1667:The Rotation Game(IDA星)

Problem Description The rotation game uses a # shaped board, which can hold 24 pieces of square blocks (see Fig.1). The blocks are marked with symbols 1, 2 and 3, with exactly 8 pieces of each kind. 

ACM!荣耀之路! 3007

【搜索进阶】HDU 1667 The Rotation Game

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1667 IDA*的入门题目,状态过多容易超内存,正好体现了IDA*的优势,每次操作移动能使一个数字进入中间的八个位置,所以构造h()=8-max(1,2,3在中间8个位置的个数)

又见炊烟 561

HDU 1667 The Rotation Game IDA*搜索

转载请注明出处,谢谢 http://blog.youkuaiyun.com/ACM_cxlove?viewmode=contents           by---cxlove 第一个IDA*搜索。 迭代加深搜索是逐渐加深搜深度,和BFS比较,不需要大量内存存取状态,但是耗时增加,因为好多都是重复搜索。 因为迭代加深搜索适用于对内存要求高,但是对时限要求不太高的题目。 而IDA*就是在在迭代加深搜索中

窝不是爱酱,喵~~~~ 2220

IDA*学习笔记-HDU1667 The Rotation Game

以HDU1667为例,记录了IDA*的学习心得,终点提到A*构造的思路和原则

ex_voda的博客 291

HDU1667 : The Rotation Game

考虑枚举最后中间的数字,然后可以用一个24位的整数来表示一个状态,一共有C(24,8)=735471种状态,然后BFS即可。 比赛的时候由于手速问题没写完TAT 写完后在坑爹评测机上还是TLE。 所以这是经过大量常数优化后的代码。   #include&lt;cstdio&gt; struct P{int a,b,c,d;P(){}P(int _a,int _b,int _c,in...

weixin_34122604的博客 95
上一篇: QT5提示can not find -lGL的解决方法
下一篇: HDU 1754 I Hate It
_NMfloat_
博客等级 码龄12年 7粉丝 315原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值