HDU - 5067 / HDU - 5418 TSP
集合表示多用[0,n)表示方法
HDU - 5067
经典TSP,每个顶点恰经过一次最优
#include<bits/stdc++.h>
#define rep(i,j,k) for(int i=j;i<=k;i++)
using namespace std;
typedef pair<int,int> P;
int dp[1<<12][20];
int G[56][78],r,c;
P biao[23];
inline int dis(P a,P b){
return abs(a.first-b.first)+abs(a.second-b.second);
}
int DP(int S,int v,int cnt){
if(dp[S][v]>=0) return dp[S][v];
if(S==(1<<cnt)-1&&v==0) return dp[S][v]=0;
int ans=0x3f3f3f3f;
rep(u,0,cnt-1){
if(!(S>>u&1)){
ans=min(ans,DP(S|(1<<u),u,cnt)+dis(biao[u],biao[v]));
}
}
return dp[S][v]=ans;
}
int main(){
while(scanf("%d%d",&r,&c)!=EOF){
int cnt=0;
rep(i,0,r-1)rep(j,0,c-1)scanf("%d",&G[i][j]);
rep(i,0,r-1)rep(j,0,c-1){
if(G[i][j]||(i==0&&j==0)){
biao[cnt++]=P(i,j);
}
}
memset(dp,-1,sizeof dp);
printf("%d\n",DP(0,0,cnt));
}
return 0;
}
HDU - 5418
多次遍历TSP
用floyd使它无后效性
然后同上
#include<bits/stdc++.h>
#define rep(i,j,k) for(int i=j;i<=k;i++)
using namespace std;
int dp[1<<18][17];
int G[18][18],n,m,u,v,w;
int DP(int S,int u,int n){
if(dp[S][u]>=0) return dp[S][u];
if(S==(1<<n)-1&&u==0) return dp[S][u]=0;
int ans=0x3f3f3f3f;
rep(v,0,n-1){
if(!(S>>v&1)){
ans=min(ans,DP(S|(1<<v),v,n)+G[u][v]);
}
}
return dp[S][u]=ans;
}
int main(){
int T; scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&m);
memset(G,0x3f,sizeof G);
memset(dp,-1,sizeof dp);
rep(i,1,m){
scanf("%d%d%d",&u,&v,&w);
u--; v--;
G[u][v]=min(G[u][v],w);
G[v][u]=min(G[v][u],w);
}
rep(i,0,n-1) G[i][i]=0;
rep(i,0,n-1) rep(j,0,n-1)if(i!=j){
rep(k,0,n-1)
G[i][j]=min(G[i][j],G[i][k]+G[k][j]);
}
printf("%d\n",DP(0,0,n));
}
return 0;
}
HDU - 5067 / HDU - 5418 TSP的更多相关文章
- HDU 5067 Harry And Dig Machine(状压DP)(TSP问题)
题目地址:pid=5067">HDU 5067 经典的TSP旅行商问题模型. 状压DP. 先分别预处理出来每两个石子堆的距离.然后将题目转化成10个城市每一个城市至少经过一次的最短时间 ...
- HDU 5067 Harry And Dig Machine(状压dp)
HDU 5067 Harry And Dig Machine 思路:因为点才10个,在加上一个起点,处理出每一个点之间的曼哈顿距离,然后用状压dp搞,状态表示为: dp[i][s],表示在i位置.走过 ...
- HDU - 2222,HDU - 2896,HDU - 3065,ZOJ - 3430 AC自动机求文本串和模式串信息(模板题)
最近正在学AC自动机,按照惯例需要刷一套kuangbin的AC自动机专题巩固 在网上看过很多模板,感觉kuangbin大神的模板最为简洁,于是就选择了用kuangbin大神的模板. AC自动机其实就是 ...
- HDU 5067 (状态压缩DP+TSP)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5067 题目大意:蓝翔挖掘机挖石子.把地图上所有石子都运回起点,问最少耗时. 解题思路: 首先得YY出 ...
- HDU 5067 Harry And Dig Machine:TSP(旅行商)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5067 题意: 给你一个n*m的地图,地图上标着对应位置的石子数.你从左上角出发,每次可以向上下左右四个 ...
- HDU 5067
http://acm.hdu.edu.cn/showproblem.php?pid=5067 规定起点和终点的tsp问题,解法依然是状态压缩dp,在初始化和计算答案的时候略做改动即可 #include ...
- BestCoder14 1002.Harry And Dig Machine(hdu 5067) 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5067 题目意思:给出一个 n * m 的方格,每一个小方格(大小为1*1)的值要么为 0 要么为一个正 ...
- hdu 5067 Harry And Dig Machine
http://acm.hdu.edu.cn/showproblem.php?pid=5067 思路:问题可以转化成:从某一点出发,遍历网格上的一些点,每个点至少访问一次需要的最小时间是多少.这就是经典 ...
- HDU 3001 Travelling:TSP(旅行商)【节点最多经过2次】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3001 题意: 有n个城市,m条双向道路,每条道路走一次需要花费路费v.你可以将任意一个城市作为起点出发 ...
随机推荐
- c语言实践 判断一个数是不是素数
int main() { int input = 0; scanf_s("%d",&input); if (input < 2) { printf("wro ...
- laravel的orm增删改查
增: //通过模型新增 //使用模型的create方法新增数据 删: //通过模型删除 //通过主键删除 改: //通过模型更新数据库 //结合查询语句批量更新 查:
- js日期 操作
//重写toString方法,将时间转换为Y-m-d H:i:s格式 Date.prototype.toString = function(){ ) + "-" + this.ge ...
- 通过批处理操作注册表实现winform应用中Webbrowser以指定的IE版本加载网页
通过批处理操作注册表实现winform应用中Webbrowser以指定的IE版本加载网页 rem 强制WebBrowser控件使用指定IE版本显示应用的网页 IF EXIST %windir%\Sys ...
- orcad找不到dll
如果运行Capture.exe找不到cdn_sfl401as.dll,如果运行allegro.exe找不到cnlib.dll,(上面俩个库文件都在C:/Cadence/SPB_16.3/tools/b ...
- POJ2253 Frogger(spfa变形)
Description Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Fro ...
- IIS 6.0 发布网站使用教程
原文地址:http://wenku.baidu.com/view/95d8b49851e79b89680226aa.html
- Win7 WPF程序无法接受外部拖拽
最近在WPF项目中遇到一个问题.虽然选择了AllowDrop = True,但是还是无法支持从外部拖拽文件到程序,倒是内部拖拽(如从一个列表拖拽到树)和从程序拖拽到外部可以. 解决过程 1.考虑是程序 ...
- arp欺骗进行流量截获-1
这边博文主要讲一下怎么使用arp欺骗进行流量截获,主要用于已经攻入内网以后,进行流量监听以及修改. 一.什么是arp arp协议是以太网的基础工作协议,其主要作用是是一种将IP地址转化成物理地 ...
- Invalid App Store Icon. The App Store Icon in the asset catalog in 'xxx.app' can’t be transparent nor contain an alpha channel.
1.向appstore上传应用的时候,报了这样一个错误 ERROR ITMS-90717: "Invalid App Store Icon. The App Store Icon in th ...