hdu 1584 蜘蛛纸牌
2024-08-31 03:10:19
把小的牌放到大的牌上,求最小移动的距离和
DFS遍历所有的可能,把每一张牌与之要移动的牌都进行两层for的循环,注意回溯条件满足立刻break
代码(算法借鉴)
#include <bits/stdc++.h>
using namespace std;
int sum,vis[20],num[20],ans;
void dfs(int cur,int sum)
{
if(sum>=ans)
return;
if(cur==9)
{
ans=sum;
return;
}
for(int i=1;i<=9;i++)
{
if(!vis[i])
{
vis[i]=1;
for(int j=i+1;j<=10;j++)
if(!vis[j])
{
dfs(cur+1,sum+abs(num[j]-num[i]));
break;
}
vis[i]=0;
}
}
}
main()
{
int t;
cin>>t;
while(t--)
{
for(int i=1;i<=10;i++)
{
int n;
cin>>n;
num[n]=i;
}
memset(vis,0,sizeof(vis));
ans=INT_MAX;
dfs(0,0);
cout<<ans<<endl;
}
}
最新文章
- 给textarea添加背景图
- 阿里云安装LNMP以及更改网站文件和MySQL数据目录
- 添加web引用和添加服务引用有什么区别?
- OAF_VO系列1 - Accelerator Keys
- 详解 jupyter notebook 集成 spark 环境安装
- 几个简单的Makefile
- Caffe Python特征抽取
- SQLite数据库查看工具(免费)
- 关于iOS性能调优
- PHP-day01
- tensorflow import 没找到cudnn库问题解决
- 使用Phalcon框架开发一个简易的博客系统
- net core 部署到windows 服务
- [转帖]Docker容器CPU、memory资源限制
- this view is not constrainted......
- Bootstrap 使用
- H - Rescue the Princess ZOJ - 4097 (tarjan缩点+倍增lca)
- php脚本#!/usr/bin/env php写法的好处
- 写了一个Hy的vscode语法高亮插件
- powershell玩转litedb数据库-第二版