首页 > 其他分享 >十九 731. 毕业旅行问题 (状态压缩DP)

十九 731. 毕业旅行问题 (状态压缩DP)

时间:2024-03-27 11:25:38浏览次数:16  
标签:状态 int 731 DP new 十九 dp

731. 毕业旅行问题 (状态压缩DP)
image

思路:使用状态压缩DP,dp[i][j]中i表示状态(二进制表示),j表示最后所在城市。算法时间复杂度是O(2n*n2),需要优化掉没有访问过1号城市的状态和无效状态。

import java.util.*;

public class Main {
    private static int n;
    private static int[][] w, dp;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        w = new int[n][n];
        dp = new int[1 << n][n];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                w[i][j] = sc.nextInt();
            }
        }
        for (int i = 0; i < (1 << n); i++) {
            Arrays.fill(dp[i], 0x3f);
        }
        
        dp[1][0] = 0;
        for (int k = 1; k < (1 << n); k += 2) {
            for (int i = 0; i < n; i++) {
                if ((k >> i & 1) == 0) { continue; }
                for (int j = 0; j < n; j++) {
                    if (((k - (1 << i)) >> j & 1) != 0) {
                        dp[k][i] = Math.min(dp[k][i], dp[k - (1 << i)][j] + w[j][i]);
                    }
                }
            }
        }
        
        int res = Integer.MAX_VALUE;
        for (int i = 1; i < n; i++) {
            res = Math.min(res, dp[(1 << n) - 1][i] + w[i][0]);
        }
        
        System.out.println(res);
    }
}

标签:状态,int,731,DP,new,十九,dp
From: https://www.cnblogs.com/he0707/p/18098521/lanqiaobei19

相关文章

  • 国赛报名开启 | 2024第十九届全国大学生智能汽车竞赛-天途创意组智慧巡检比赛
    ......
  • 蓝桥杯练习题总结(三)线性dp题(摆花、数字三角形加强版)
    目录 一、摆花思路一: 确定状态:初始化:思路二:确定状态:初始化:循环遍历: 状态转移方程: 二、数字三角形加强版一、摆花题目描述小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆。通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号。为了......
  • 数位dp
    233.数字1的个数给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。classSolution:defcountDigitOne(self,n:int)->int:s=str(n)@cachedeff(i:int,cnt:int,is_limit:bool)->int:ifi==len(s):......
  • 高维前缀和/SOS DP 学习笔记
    JOISC2023D2T2Council注意到,钦定一个人为主席后,对于此时得票数大于\(\lfloor\frac{n}{2}\rfloor\)的议案,不管怎么选副主席,均能通过;对于此时得票数小于\(\lfloor\frac{n}{2}\rfloor\)的议案,不管怎么选副主席,均不能通过。所以需要考虑的只有此时得票数恰好等于\(\lfloo......
  • 动态规划——线性dp
    数字三角形//从上到下#include<iostream>#include<algorithm>usingnamespacestd;constintN=510,INF=1e9;intn;inta[N][N];intf[N][N];intmain(){scanf("%d",&n);for(inti=1;i<=n;i++)for(int......
  • 使用dpkg在ubuntu上安装软件包遇到依赖包的问题
    问题在ubuntu上使用apt-get安装软件包,系统会自动安装依赖的软件包,但是使用dpkg在ubuntu上安装软件包时不会,有时会遇到下面的错误:pengdl@pengdl-HP:~/Soft$sudodpkg-ivirtualbox-7.0_7.0.14-161095~Ubuntu~focal_amd64.deb[sudo]passwordforpengdl:Selectingpreviously......
  • 自然语言处理: 第十九章LoRA&QLoRA微调技巧
    论文地址:使用低秩自适应(LoRA)进行参数高效LLM微调-LightningAI—Parameter-EfficientLLMFinetuningWithLow-RankAdaptation(LoRA)-LightningAI本篇文章是由位来自威斯康星大学麦迪逊分校的统计学助理教授SebastianRaschka,也是人工智能平台LightningAI的......
  • 换根DP学习笔记
    啊啊啊啊啊啊啊啊啊啊啊啊画图累死我了额,这不菜根快乐DP(根)吗换根DP,即换根树形DP平常树形DP指定一个根,但万一邪恶出题人让你求多个点为根的情况呢?你们可能会想:多跑几遍不就好了!不可以的,直接TLE。这有个树,B是A之后的树根(拎上去):B成为树根后:画风突然转变但是!其实有些没变!......
  • 【DP】01背包问题与完全背包问题
    一、01背包问题有 N件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包......
  • NCV7718CDPR2G半桥驱动器规格书PDF数据手册引脚图图片价格参数概概述
    产品概述:NCV7718是一款六角半桥驱动器,具有专为汽车和工业运动控制应用设计的保护功能。NCV7718具有独立的控制和诊断功能。该器件可在正向、反向、制动和高阻抗状态下运行。驱动器通过16位SPI接口进行控制,并且菊花链兼容规格书参数:引脚图:......