把小的牌放到大的牌上,求最小移动的距离和

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;
}
}

最新文章

  1. 给textarea添加背景图
  2. 阿里云安装LNMP以及更改网站文件和MySQL数据目录
  3. 添加web引用和添加服务引用有什么区别?
  4. OAF_VO系列1 - Accelerator Keys
  5. 详解 jupyter notebook 集成 spark 环境安装
  6. 几个简单的Makefile
  7. Caffe Python特征抽取
  8. SQLite数据库查看工具(免费)
  9. 关于iOS性能调优
  10. PHP-day01
  11. tensorflow import 没找到cudnn库问题解决
  12. 使用Phalcon框架开发一个简易的博客系统
  13. net core 部署到windows 服务
  14. [转帖]Docker容器CPU、memory资源限制
  15. this view is not constrainted......
  16. Bootstrap 使用
  17. H - Rescue the Princess ZOJ - 4097 (tarjan缩点+倍增lca)
  18. php脚本#!/usr/bin/env php写法的好处
  19. 写了一个Hy的vscode语法高亮插件
  20. powershell玩转litedb数据库-第二版

热门文章

  1. POJ 1300 Door Man(欧拉通路)
  2. 逆向工程之App脱壳
  3. Git下的冲突解决【转】
  4. ubuntu安装phpstorm
  5. Oracle查询列重命名
  6. [Apple开发者帐户帮助]七、注册设备(2)注册多个设备
  7. akka设计模式系列-基础模式
  8. Salvation -- ---广搜 + 限定方向 ,
  9. $ST表刷题记录$
  10. 看无可看 分治FFT+特征值方程