10张牌,大的只能跟小的跑,可以针对每一个状态进行搜索,求一个最小的移动距离。

但是不会怎么遍历整个状态是硬伤?

因为只能大的跟着小的。

先把小的标记,去寻找大的点,最终一定是满足的吧。

比如先标记1,然后回溯的时候,2被标记了,那么一定是放到比2大一的3上,这样一定是满足的。

不会DFS全部的情况是硬伤啊!!!

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const double eps=1e-5;
const double pi=acos(-1.0);
const int mod=1e9+7;
const int INF=0x3f3f3f3f;
const int N=1e5+10; int a[15],vis[15];
int ans; void dfs(int cur,int temp)
{
if(temp>=ans){
return;
}
if(cur==9){ //10是不会动的,动9张就行
ans=temp;
return;
}
for(int i=1;i<10;i++){ //所有情况的DFS
if(!vis[i]){
for(int k=i+1;k<=10;k++){ //放的肯定比他的大
if(!vis[k]){
vis[i]=1;
dfs(cur+1,temp+abs(a[i]-a[k]));
break; //放完就结束。
}
}
vis[i]=0; //回溯
}
}
} int main()
{
int T,i;
scanf("%d",&T);
while(T--)
{
int x;
for(i=1;i<=10;i++){
cin>>x;
a[x]=i;
}
memset(vis,0,sizeof(vis));
ans=INF;
dfs(0,0);
cout<<ans<<endl;
}
return 0;
}

HDOJ1584蜘蛛牌【DFS】的更多相关文章

  1. HDU1584:蜘蛛牌(DFS)

    Problem Description 蜘蛛牌是windows xp操作系统自带的一款纸牌游戏,游戏规则是这样的:只能将牌拖到比她大一的牌上面(A最小,K最大),如果拖动的牌上有按顺序排好的牌时,那么 ...

  2. hdoj1584 蜘蛛牌 (区间型动态规划)

    hdoj1584 分析: f[i][j] 表示 把一串牌 牌 i 到 j 摞为一摞时 所花费最少的步数. d[i][j] 表示把牌 i 挪到牌 j 上时需要走的步数(最初给的状态). 以一串牌 3~8 ...

  3. (step4.3.9)hdu 1584(蜘蛛牌——DFS)

    题目大意:本体是中文题,可以直接在OJ上看 /* * 1584_2.cpp * * Created on: 2013年8月22日 * Author: Administrator */ #include ...

  4. HDU 1584(蜘蛛牌 DFS)

    题意是在蜘蛛纸牌的背景下求 10 个数的最小移动距离. 在数组中存储 10 个数字各自的位置,用深搜回溯的方法求解. 代码如下: #include <bits/stdc++.h> usin ...

  5. 蜘蛛牌 (DFS)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1584 全部状态都判断一遍 代码: #include <stdio.h> #include ...

  6. HDU-1584 蜘蛛牌(dfs)

    可以多看看. 蜘蛛牌 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  7. 蜘蛛牌(hdu 1584 DFS)

    蜘蛛牌 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  8. F - 蜘蛛牌(深度搜索)

    Problem Description 蜘蛛牌是windows xp操作系统自带的一款纸牌游戏,游戏规则是这样的:只能将牌拖到比她大一的牌上面(A最小,K最大),如果拖动的牌上有按顺序排好的牌时,那么 ...

  9. HDU1584(蜘蛛牌)

    蜘蛛牌 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

随机推荐

  1. SQL经常使用语法

    一.基础 1.创建数据库 CREATE DATABASE database-name 2.删除数据库 drop database dbname 3.备份sql server --- 创建 备份数据的 ...

  2. C#复习总结4

    第十三章 委托 什么是委托 委托就是函数的指针. 其和类相似,其实就是用户自定义的引用类型. 委托是包含有序方法列表的对象,这些方法具有相同的签名和返回类型. MyDel delvar = new M ...

  3. python调用nmap进行扫描

    #coding=utf-8 import nmap import optparse import threading import sys import re ''' 需安装python_nmap包, ...

  4. Ajax的简单实现(JQuary)

    还是之前的例子,相对来说,用JQ就简单了很多,真的多,因为JQ直接把方法都写好了,直接调用就行了,,ԾㅂԾ,, php文件就不需要多做修改了,如下: <?php //改变Content-Type ...

  5. day 18 面向对象的 继承

    一.概念性知识 面向对象的三大特征:     继承,多态,封装 继承是创建新类的一种方法,在python中,新建的类可以继承一个或多个父类,父类称作基类或超类,新建的类又称作派生类或子类. 继承的好处 ...

  6. lonlifeOJ1152 “玲珑杯”ACM比赛 Round #19 概率DP

    E -- Expected value of the expression DESCRIPTION You are given an expression: A0O1A1O2A2⋯OnAnA0O1A1 ...

  7. http协议的队首阻塞

    1 队首阻塞 就是需要排队,队首的事情没有处理完的时候,后面的人都要等着. 2 http1.0的队首阻塞 对于同一个tcp连接,所有的http1.0请求放入队列中,只有前一个请求的响应收到了,然后才能 ...

  8. iframe 框架中 父子界面的JS调用

    子界面调用父界面 window.parent.hello(); 父界面调用子界面 window.frmaes[i].hello();

  9. 汉字与区位码互转(天天使用Delphi的String存储的是内码,Windows记事本存储的文件也是内码),几个常见汉字的各种编码,utf8与unicode的编码在线查询,附有读书笔记 good

    汉=BABA(内码)=-A0A0=2626(区位码)字=D7D6(内码)=-A0A0=5554(区位码) 各种编码查询表:http://bm.kdd.cc/ 汉(记住它,以后碰到内存里的数值,就会有敏 ...

  10. easyUI-右键菜单,关闭选项卡

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...