hdu5067
题意 给了一个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的更多相关文章
随机推荐
- day2_jmeter断言
断言就是:检查返回结果,测试是否通过,就是自动帮你校验结果用的 1)添加响应断言 我们模式匹配规格选择包括
- pycharm快捷键帮助文档Keymap Reference
前面我们已经安装了pycharm,为了提升效率,我们一般会用到快捷键操作,pycharm有哪些快捷键呢?Pycharm中打开Help->Keymap Reference可查看默认快捷键帮助文档, ...
- zabbix基础知识
zabbix监控 初级 1.识别监控对象(分级) 2.理解监控对象(理论知识) 3.细分监控对象的指标 4.确定报警的基准线 预中级 1.工具化和监控分离 2.监控对象的分类 2.1硬件监控(方法:机 ...
- 20180820 JS 片段
$.post异步发送容易引起后台没有处理完,就提示错误异常.在不必要的情况下,请采用.同步的方式 $.ajaxSetup({ async: false }); 但在$.post结束后记得恢复系统默认的 ...
- 001-RESTful服务最佳实践-RestFul准则、HTTP动词表示含义、合理的资源命名、响应格式XML和JSON
一.概述 因为REST是一种架构风格而不是严格的标准,所以它可以灵活地实现.由于这种灵活性和结构自由度,对设计最佳实践也有很大的差异. API的方向是从应用程序开发人员的角度考虑设计选择. 幂等性 不 ...
- Nancy Web框架 文档
http://liulixiang1988.github.io/nancy-webkuang-jia.html 中文 https://github.com/NancyFx/Nancy/wiki/Doc ...
- vue中less的使用
1.安装:npm install less less-loader --save 2.修改webpack.config.js文件,配置loader加载依赖,让其支持外部的less,在原来的代码上添加 ...
- component 理解
1: sap中的component理解 component分为 genil component 和ui component component相当于整个应用中某一小块的前台/后台所有的东西都包括进去. ...
- IOP知识点(3)-Modal.show
1.position 模态框初始位置.可设为字符串 "左位置 上位置" 或数组 [左位置, 上位置],规则如下: 左位置 可设为 left|center|right 三者之一,上位 ...
- Java知识点ArrayList
ArrayList List<ApiSvcVersion> apiSvcVersionList = apiSvcVersionDao.getListByClientId(map1); // ...