hdu 4281 mtsp(多重旅行商问题)
来源:互联网 发布:淘宝价格区间设置不了 编辑:程序博客网 时间:2024/06/07 01:25
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define MAX(x,y) ((x)>(y)?(x):(y))#define MIN(x,y) ((x)>(y)?(y):(x))#define INF 0x3f3f3f3fusing namespace std;int map[30][30];int tot,dp[1<<17],dp1[20][1<<17],res[1<<17];int n,x[200],y[200],ok[1<<17],c[30],m,w[1<<17];int judge(int x){int sum=0;for(int i=0;i<n;i++){if((1<<i)&x)sum+=c[i]; }if(sum>m)return 0;elsereturn 1;} void init(){memset(ok,0,sizeof(ok));for(int i=0;i<n;i++){for(int j=0;j<n;j++){map[i][j]=ceil(sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j])));}}tot=0;for(int i=0;i<1<<n;i++){ok[i]=judge(i);if(ok[i])w[tot++]=i;}}int bag_dp(){memset(dp,0x3f,sizeof(dp));dp[0]=0;for(int i=0;i<tot;i++){for(int j=(1<<n)-1;j>=0;j--){if(dp[j]!=INF){if(j&w[i])continue;dp[j|w[i]]=MIN(dp[j|w[i]],dp[j]+1);}}}return dp[(1<<n)-1];} int mtsp(){memset(res,0x3f,sizeof(res));memset(dp1,0x3f,sizeof(dp1));dp1[0][1]=0;for(int i=0;i<(1<<n);i++){if(ok[i]){for(int j=0;j<n;j++){if(i&(1<<j)){res[i]=MIN(res[i],dp1[j][i]+map[j][0]);for(int k=0;k<n;k++){if(!(i&(1<<k))){dp1[k][i|(1<<k)]=MIN(dp1[k][i|(1<<k)],dp1[j][i]+map[j][k]);}}}}}}for(int i=1;i<1<<n;i++){if(i&1){for(int j=i&(i-1);j;j=i&(j-1)){res[i]=MIN(res[i],res[(i-j)|1]+res[j]);}}} return res[(1<<n)-1];}int main(){while(~scanf("%d%d",&n,&m)){for(int i=0;i<n;i++)scanf("%d%d",&x[i],&y[i]);for(int i=0;i<n;i++)scanf("%d",&c[i]);init();int ans=bag_dp();if(ans==INF)printf("-1 -1\n");elseprintf("%d %d\n",ans,mtsp());}}
0 0
- hdu 4281 mtsp(多重旅行商问题)
- HDU 4281 Judges' response(12年天津 MTSP问题)
- HDU 4281 (状态压缩+背包+MTSP)
- hdu 4281(MTSP)
- HDU - 4281 Judges' response(MTSP)
- hdu 3001 Travelling (旅行商问题)
- HDU 4568 旅行商问题
- hdu 4281 DP(多旅行商)
- HDU 4281 Judges' response 状态压缩 01背包 MTSP
- hdu - 4281 - Judges' response - dp / 01背包 / mTSP
- hdu 2224 && poj 2677 (旅行商问题)
- hdu 5418 Victor and World(旅行商问题)
- hdu 2224(双调旅行商问题)
- HDU 5067 动态规划---旅行商(tsp)问题
- hdu 3001 Travelling 旅行商问题
- hdu Free DIY Tour (旅行商问题)
- hdu 3681 Prison Break (旅行商问题)
- hdu 4568 Hunter (旅行商问题)
- 表格、矩形、正方形、类微信图文【瀑布流排版】列表jQuery分页插件
- hdu 2211 杀人游戏
- activation函数小解
- EL表达式 Date 格式时间转换成毫秒
- python根据路径导入模块的两种方法:sys.path.append和imp.load_source
- hdu 4281 mtsp(多重旅行商问题)
- Android 进程基础知识
- android 5.0的新控件 RecycleView
- git配置使用
- 搜索专题 ps批量操作
- 快速判断一个数是否为质数
- angular2学习笔记(6)
- HDU 1789 Doing Homework again(贪心)
- 属性动画 向右消失 向左出来