ACM--HDU 1195 Open the Lock 小BFS
http://acm.hdu.edu.cn/showproblem.php?pid=1195
题目大意:给出原密码和准确密码,对于原密码每次可以进行三个操作:
1:任意一位+1 且9+1=1
2:任意一位-1 且1-1=9
3:相邻两位互换,且首位和末位不是相邻的。
(密码只有四位数,每个数字1-9) 题目要求原密码变成准确密码的最少步数
我的代码
#include<stdio.h>
#include<string.h>
struct Node
{
char str[5];//每种的字符串
int ti;//每种的移动次数
}dui[6700];//9^4
char pass[5];
int bfs();
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
scanf("%s",dui[0].str);
scanf("%s",pass);
printf("%d\n",bfs());
}
return 0;
}
int bfs()
{
int head,tail,flag,i,j,now;
char tem[12][5],ch;
head=tail=0;
dui[0].ti=0;
tail++;
while(head<tail)
{
now=head++;//出队
for(i=0;i<11;i++)
{
flag=0;
strcpy(tem[i],dui[now].str);
if(i<=2)//临位互换
{
ch=tem[i][i];
tem[i][i]=tem[i][i+1];
tem[i][i+1]=ch;
}
if(i>=3 && i<=6)//+1
{
if(tem[i][i-3]<'9') tem[i][i-3]+=1;
else tem[i][i-3]='1';
}
if(i>=7 && i<=10)//-1
{
if(tem[i][i-7]>'1') tem[i][i-7]-=1;
else tem[i][i-7]='9';
}
if(strcmp(tem[i],pass)==0) return (dui[now].ti+1);
for(j=0;j<now;j++)
{
if(strcmp(tem[i],dui[j].str)==0)
{
flag=1;break;
}
}
if(flag==0)
{
dui[tail].ti=dui[now].ti+1;
strcpy(dui[tail++].str,tem[i]);//入队
// puts(dui[tail-1].str);
}
}
}
return -1;
}
为什么不对啊 快崩溃了
相关推荐
产教融合实训基地与实践中心建设逻辑图-可编辑版
产教融合实训基地与实践中心建设逻辑图-可编辑版
idea2025-free.zip
idea2025-free.zip
sop基于灵敏度分析的有源配电网智能软开关优化配置升级1(Matlab代码实现)
内容概要:本文提出了一种基于灵敏度分析的有源配电网智能软开关(SOP)优化配置方法,旨在应对高比例分布式电源接入带来的电压波动与网络损耗加剧等问题。研究以IEEE33节点系统为算例,通过改进的灵敏度分析模型量化各节点对电压和功率流动的影响程度,进而构建SOP选址与定容的优化模型,实现降低网损、改善电压分布及提升系统运行灵活性的目标。全文详细阐述了灵敏度指标的数学推导、目标函数与约束条件的建模过程,并基于Matlab实现了完整的仿真求解流程,具备良好的工程实用性与学术参考价值。; 适合人群:电力系统及其自动化、电气工程等相关专业的硕士博士研究生、科研机构研究人员,以及从事智能配电网规划、运行与优化的工程技术人员。; 使用场景及目标:①研究分布式电源大规模接入背景下配电网的主动调控与优化策略;②指导智能软开关在实际配电网中的科学选址与容量配置;③为相关科研课题提供可复现的仿真案例,支撑学术论文撰写与算法验证。; 阅读建议:建议读者结合提供的Matlab代码与IEEE33节点标准模型进行动手实践,重点理解灵敏度指标的物理意义及其在优化模型中的应用逻辑,关注求解过程中的约束设置与算法收敛性,并可进一步拓展至SOP与储能联合配置、多时间尺度优化等复杂场景进行二次开发与研究。
Ubuntu安装Latex
关于Ubuntu安装Latex的详细记录和排错指南
高校技术转移办公室人员在成果转化过程中,如何实现科技成果与产业需求的高效对接?.docx
高校技术转移办公室人员在成果转化过程中,如何实现科技成果与产业需求的高效对接?


