Travelling (三进制加旅行商)

Travelling(三进制状压dp) 传送门HDU3001描述 After coding so many days,Mr Acmer wants to have a good rest.So travelling is the best choice!He has decided to visit n cities(he insists on seeing all the... 阅读详情

【题意】标准的旅行商加一句话,每个点最多走两次。

【分析&解题思路】

定义状态:dp【st】【i】 :在状态为 st 时 当前在 i 点的最小花费

转移方程:dp【now】【j】 = min(dp【now】【j】,dp【st】【i】+mp【i】【j】);now是st可以一次转移得到的状态

【AC代码】

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int INF = 0x3f3f3f3f;
int n,m,ans;
int tri[12]={0,1,3,9,27,81,243,729,2187,6561,19683,59049};
int dig[59050][11]; //dp[state][i]状态state的第i位是什么
int dp[59050][11],edge[11][11];//当前经过i点状态为state的最小花费

int main(){
    //Init dig.
    for(int i=0;i<59050;i++){
        int t=i;
        for(int j=1;j<=10;j++){
            dig[i][j]=t%3;
            t/=3;
            if(t==0)break;
        }
    }
    while(~scanf("%d%d",&n,&m)){
        memset(edge,INF,sizeof(edge));
        memset(dp,INF,sizeof(dp));
        int u,v,w;
        while(m--){
            scanf("%d%d%d",&u,&v,&w);
            if(w<edge[u][v]) edge[u][v]=edge[v][u]=w;
        }
        //Init dp.
        for(int i=1; i<=n; i++) dp[tri[i]][i]=0;
        ans=INF;
        for(int s=0; s<tri[n+1]; s++){
            bool fuck=true;//判断所有的城市是否被访问了
            for(int i=1; i<=n; i++){
                if(dig[s][i]==0) fuck=false; //还有城市未被访问
                if(dp[s][i]==INF) continue; //该状态下城市i还未被访问
                for(int j=1; j<=n; j++){
                    if(i==j) continue;
                    if(edge[i][j]==INF||dig[s][j]>=2) continue;
                    int newS = s+tri[j];
                    dp[newS][j]=min(dp[newS][j],dp[s][i]+edge[i][j]);
                }
            }
            if(fuck)//如果所有城市都被访问了,可以更新答案
            {
                for(int j=1;j<=n;j++) ans=min(ans,dp[s][j]);
            }
        }
        if(ans==INF){
            puts("-1");
        }
        else{
            printf("%d\n",ans);
        }
    }
    return 0;
}


教你搞懂RT-Thread的移植和配置ENV工具环境 RT-Thread的移植和配置ENV工具环境 阅读详情

相关推荐

基于云盾构建等保三级Web安全体系:从合规要求到实战落地

网络安全等级保护(等保)是保障信息系统安全的重要制度,其核心原理是通过分级防护、动态调整的策略,构建纵深防御体系。在技术层面,等保要求覆盖物理环境、通信网络、区域边界、计算环境和安全管理中心等多个层面,旨在通过技术和管理相结合的方式,有效应对网络攻击和数据泄露风险。对于Web应用而言,满足等保三级要求具有极高的技术价值,它不仅是合规的刚性需求,更是提升业务系统整体安全水位、建立用户信任、保障业务连续性的关键工程实践。在云计算时代,利用云原生安全服务(如Web应用防火墙WAF、云安全中心、态势感知等)可以高效

weixin_29324877的博客 308

POJ2677 DP tour 双调欧几里得旅行商问题

Tour Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2699 Accepted: 1193 Description John Doe, a skilled pilot, enjoys traveling. While on vacation, he rents...

weixin_30767921的博客 328

Android客户端如何设计架构

当我们在新开发一款APP时,我们在初期要如何设计架构呢?在这里我根据我的经验,总结了一些基本的架构思路。 客户端架构设计的时候,首先需要充分考虑到所开发的app的类型,这里我分为功能型和服务型两大类,功能型的app侧重业务和功能,服务型的app侧重服务和运算。下面我就具体来讲讲针对这两种类型的通用架构。 功能型app 功能型app的activity比较多,整个app都以一个个activity承载业务和功能,在设计这类app时,我们需要考虑哪些要素呢? 由于activity比较多,我们需要考虑页面的跳转路由,

子者不语的专栏 1544

hdu 3001 Travelling (TSP问题 )

Travelling Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3905    Accepted Submission(s): 1234 Problem Description After coding so

Coding A World 2195

UniTouch:多模态触觉对齐技术如何重塑零样本跨模态应用

UniTouch模型通过创新的多模态触觉对齐技术,成功将触觉数据映射到通用的视觉-语言嵌入空间,解决了触觉模态的“孤岛困境”。该技术利用对比学习和传感器特定标记,实现了高质量的零样本学习能力,使模型无需额外训练即可完成触觉分类、描述等任务,并能驱动跨模态生成,为机器人、VR和智能制造等领域提供了强大的触觉理解新范式。

weixin_29044713的博客 409

易语言游戏Call调用避坑指南:主线程绑定与反检测实战

本文详细解析了易语言游戏Call调用中的主线程绑定与反检测技术,帮助开发者避免游戏崩溃和断线问题。通过分析线程检测原理、提供易语言实现方案及高级反检测技巧,如动态线程绑定和上下文伪装,确保Call调用的稳定性和安全性。文章还包含常见问题排查和性能优化建议,适用于游戏辅助开发领域。

weixin_29323365的博客 459

Traveling

Traveling 时间限制: 1 Sec  内存限制: 128 MB 提交: 15  解决: 5 [提交][状态][论坛] 题目描述 SH likes traveling around the world. When he arrives at a city, he will ask the staff about the number of cities that connect

my_acm 747

Astah 9.0升级步骤(Widnows/Mac OS)

Astah Professional是一款全新的轻量级UML建模工具。软件集思维导图和UML建模于一体,采用100%纯JAVA构建, 兼容性强,不仅能够实现分布式建模、项目合并,还能够实现和其它建模工具的交互。

tequiero777的博客 2825

hdu 3001 Travelling 旅行商问题变形 三进制的压缩dp

Description After coding so many days,Mr Acmer wants to have a good rest.So travelling is the best choice!He has decided to visit n cities(he insists on seeing all the cities!And he does not

lastone的专栏 520

《Ventoy 制作系统安装 U 盘的具体步骤》

然后您可以在电脑的磁盘管理中对 U 盘进行快速格式化,选择 FAT32 或 NTFS 文件系统。至此,Ventoy 系统安装 U 盘就制作完成了。您可以在需要安装系统的电脑上,从 U 盘启动,然后选择相应的系统镜像进行安装。安装完成后,将您需要的操作系统镜像文件(如 Windows、Linux 等的 ISO 格式镜像)复制到 U 盘的根目录。在安装程序中,选择您插入的 U 盘设备,确保选择正确,以免误操作。2. 确认选择的 U 盘盘符正确,防止误操作导致其他磁盘数据丢失。点击“安装”按钮,等待安装完成。

jiyiwangluokeji的博客 2670

数学之美:欣赏超越数e

文章目录一、e为何物?二、利息与e的关系1、利息问题2、计算利息3、欣赏螺旋线(1)螺旋线概述(2)绘制螺旋线三、e和π 一、e为何物? e是一个无限不循环小数,其值约等于2.718281828…,它是一个超越数,有时也称为欧拉数(Euler’s Number)。 以e为底的对数称为自然对数(Natural Logarithm),数学中使用自然这个词的还有自然数(Natural Number)。 这里的“自然”并不是现代人所习惯的“大自然”,而是有点儿“天然存在,非人为”的意思。 二、利息与e的关系

howard2005的专栏 1718

HDU3001&BUCU5974——旅行商变形2(英文版Travelling)——题解

传送门旅行商变形2题目描述输入描述输出描述样例一输入输出题目分析解题思路AC代码 旅行商变形2 旅行商变形2(航电OJ挂掉了惹) 时间限制:3秒 空间限制:256M 题目描述 三笠阿卡曼决定参观 nnn 个城市,它要参观所有城市,不介意哪座册城市作为她的起点。 有 mmm 条道路照常收费,但她不想去一座城市超过 222 次,想把费用降到最低。 输入描述 输入包括几个测试用例。 对于每个测试用例: 第一行包含两个整数 n(1≤n≤10)n(1\leq n\leq10)n(1≤n≤10)和mmm,表

<font color="Pink">Tisfy的博客</font> 694

手把手教你 RT-DETR 添加注意力机制 | 一次性添加 20+ 种!

手把手教你 RT-DETR 添加注意力机制 | 一次性添加 20+ 种!

Coding... 2853

hdu3001——Travelling 三进制TSP, 状态压缩

Travelling Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4106    Accepted Submission(s): 1310 Problem Description After coding so man

Alex 1170

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

hdoj 3001 Travelling 【3进制+旅行商】

题目:hdoj 3001 Travelling 题意:标准的旅行商加一句话,每个点最多走两次。 分析:状态转移方程一模一样,只是要三进制,因为每个点有三种状态 0 ,1 2 定义状态:dp【st】【i】 :在状态为 st 时 当前在 i 点的最小花费 转移方程:dp【now】【j】 = min(dp【now】【j】,dp【st】【i】+mp【i】【j】);now是st可以一

大神养成中..... 1215

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

HDU 3001 Travelling:TSP(旅行商)【节点最多经过2次】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3001 题意:   有n个城市,m条双向道路,每条道路走一次需要花费路费v。你可以将任意一个城市作为起点出发,然后遍历每一个城市,并保证同一个城市最多经过2次。问你遍历这些城市的最小费用是多少。 题解:   传统的TSP问题中,每个城市只能经过一次,做法为三重for循环,分别枚举...

a1392136的博客 277

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

hdu 3001 Travelling 【状压dp+三进制】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3001 Problem Description After coding so many days,Mr Acmer wants to have a good rest.So travelling is the best choice!He has decided to visit n cities(...

几许情愁的博客 214

hdu 3001 Travelling 三进制状压Dp

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3001 附上一个写的 比较容易理解的链接:http://blog.sina.com.cn/s/blog_6ec19c780100ydws.html 题意:给定几个城市间的旅游费用,求把每个城市至少遍历一遍,且至多两遍的情况下的至少花费。否则输出-1。 代码写出来之后,会发现和二进制状压Dp差不多,

catch_catch的专栏 570

HDU-3001-Travelling(状压DP+三进制)

Travelling Problem Description After coding so many days,Mr Acmer wants to have a good rest.So travelling is the best choice!He has decided to visit n cities(he insists on seeing all the cities!And he...

qq_43461168的博客 319

HDU 3001 Travelling (三进制状压dp)

n(n<=10)个城市,知道每个城市间的旅行费用,但每个城市最多走两遍。问最小花费是多少 。 也就是每个城市可以走两次的tsp问题。

Follow My Heart 608

hdu 3001 Travelling (TSP 三进制,状压dp)

After coding so many days,Mr Acmer wants to have a good rest.So travelling is the best choice!He has decided to visit n cities(he insists on seeing all the cities!And he does not mind which city being

wjmwsgj的博客 366

DP三进制状态压缩:Travelling

B - Travelling Time Limit:3000MS    Memory Limit:32768KB    64bit IO Format:%I64d & %I64u SubmitStatus Description After coding so many days,Mr Acmer wants to have a good rest.So travelling

lethic的专栏 671

Travelling HDU - 3001 三进制状态压缩 tsp问题

After coding so many days,Mr Acmer wants to have a good rest.So travelling is the best choice!He has decided to visit n cities(he insists on seeing all the cities!And he does not mind which city being...

weixin_41544329的博客 186

HDU3001-Travelling(三进制+状态压缩)

After coding so many days,Mr Acmer wants to have a good rest.So travelling is the best choice!He has decided to visit n cities(he insists on seeing all the cities!And he does not mind which city being his start station because superman can bring him to any

weixin_43357583的博客 253

Travelling HDU - 3001 (三进制的状压dp)

Problem Description After coding so many days,Mr Acmer wants to have a good rest.So travelling is the best choice!He has decided to visit n cities(he insists on seeing all the cities!And he does not m

退役的铜牌狗 597
上一篇: 2016"百度之星" - 资格赛(Astar Round1) C
下一篇: HDU 3085
just_sort
博客等级 码龄11年 2357粉丝 1667原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值