题意 给了一个n*m的网格 然后一台挖掘机从(0,0) 这个位置出发,收集完全部的石头回到(0,0)挖掘机可以有无限的载重 用旅行商处理 dp[k][i] 表示在这个集合中最后到达i的最小距离,用集合上的dp, dp[S|(1<<j)][j]=min(dp[S|(1<<j)][j],d[S][i]+dist[i][j]);

#include <iostream>
#include <cstdio>
#include <string.h>
#include <algorithm>
#include <cmath>
using namespace std;
const int INF = **;
struct point{
int x,y;
}P[];
int dist[][];
int dp[<<][];
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)==){
int num=;
for(int i=; i<n; ++i)
for(int j=; j<m; ++j){
int a;
scanf("%d",&a);
if(a>){
P[num].x=i;
P[num].y=j;
++num;
}
}
if(num==){
printf("0\n"); continue;
}
for(int i=; i<num; ++i)
for(int j=; j<num; ++j)
dist[i][j]=dist[j][i]=abs(P[i].x-P[j].x)+abs(P[i].y-P[j].y);
for(int s=; s<<<num; ++s)
fill(dp[s],dp[s]+num,INF);
dp[][]=;
for(int i=; i<num; ++i)
dp[<<i][i]=abs(P[i].x)+abs(P[i].y);
for(int S=; S<<<num; ++S){
for(int i=; i<num; ++i)
if( S&(<<i) ){
for(int j=; j<num; ++j)
dp[S|(<<j)][j]=min(dp[ S|(<<j)][j],dp[S][i]+dist[i][j]);
}
}
int ans=INF;
for(int i=; i<num; ++i)
ans=min(ans,dp[(<<num)-][i]+abs(P[i].x)+abs(P[i].y));
printf("%d\n",ans);
} return ;
}

d

hdu5067的更多相关文章

随机推荐

  1. winform窗体启动过程

    窗体启动执行顺序:FormShowFormPaintFormActivateFormResize 关闭窗体过程FormCloseFormDestroy 最小化再最大化:FormPaintFormRes ...

  2. java 数组(二)

    public class ArrayDemo{ public static void main(String[] args){ int[] arr = {1,5,3,8,2,9,17,13}; get ...

  3. VB改写C#

    1.VB的Val()函数 先从程序集中引入Microsoft.VisualBasic命名空间.不过,即便是引入了Microsoft.VisualBasic命名空间,还是不能直接使用像Val()这样的函 ...

  4. chrome版本与对应的谷歌驱动(chromedriver)

    chrome版本与对应的谷歌驱动(chromedriver) 1.下载chromedriver:http://chromedriver.storage.googleapis.com/index.htm ...

  5. shell中expect介绍

    expect介绍 借助Expect处理交互的命令,可以将交互 过程如:ssh登录,ftp登录等写在一个脚本上,使之自动化完成.尤其适用于需 要对多台服务器执行相同操作的环境中,可以大大提高系统管理人员 ...

  6. ul+li水平居中的几种方法

    一.posotion:relative; 代码: <!DOCTYPE html> <html> <head> <meta charset="UTF- ...

  7. 使用SBT构建Scala应用【转载】

    使用SBT构建Scala应用 SBT简介 SBT是Simple Build Tool的简称,如果读者使用过Maven,那么可以简单将SBT看做是Scala世界的Maven,虽然二者各有优劣,但完成的工 ...

  8. Angular知识点

    Angular CLI 快速创建Angular 2项目和组件, 压缩打包发布. 7.创建包含html.ts.css文件的命令cd到需要创建文件的目录下面,输入如下命令 ng g c myFile 会自 ...

  9. 10.110.20.16上的MQTT server

    apollo 10.110.20.16    root    XnlzeNP2 /var/lib/apache-apollo-1.7.1 1  创建broker 进入 bin  创建 broker  ...

  10. 【Python】-NO.98.Note.3.Python -【Python3 解释器、运算符】

    1.0.0 Summary Tittle:[Python]-NO.98.Note.3.Python -[Python3 解释器] Style:Python Series:Python Since:20 ...