洛谷-P1171(状压dp)

P1171 售货员的难题——快速掌握_状压dp_CPP 而每个**dp[x][x]**所储存的为当前阶段当前状态所对应的。当状态中不存在村庄1时,能够节省大约一层的执行量.2.适当的剪枝是完成最后几个评分点的关键。3.快读快写并没有什么用,但习惯写会更好。min()的右要素为上一阶段数目加上。1.本题若数据量不大可用dfs解决。4.模块化编程使你的思路更为清晰.来分别代表两个不同的阶段。用来表示当前阶段的状态。...... 阅读详情
#include <bits/stdc++.h>
using namespace std;
/*
题目大意:
给定n个村庄,和一个距离矩阵,问从1出发,经过所有点一次,再返回1,需要的最短路程是多少。

思路:
经典TSP问题。

*/
typedef long long ll;
typedef pair<int, int> pii;
const int INF = 0x3f3f3f3f;
const double eps = 1e-6;
const double pi = acos(-1.0);

int n;
int G[25][25];
int dp[1 << 20][20];

int main()
{
    scanf("%d", &n);
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            scanf("%d", &G[i][j]);
        }
    }

    memset(dp, 0x3f, sizeof(dp));
    dp[1][0] = 0;

    for(int i = 1; i < (1 << n); i++)
    {
        if((i & 1) == 0) continue;
        for(int j = 0; j < n; j++)
        {
            if((i & (1 << j)) == 0) continue;
            for(int k = 0; k < n; k++)
            {
                if((i & (1 << k)) == 0)
                {
                    dp[i | (1 << k)][k] = min(dp[i | (1 << k)][k], dp[i][j] + G[j][k]);
                }
            }
        }
    }
    int ans = INF;
    for(int i = 1; i < n; i++)
    {
        ans = min(ans, dp[(1 << n) - 1][i] + G[i][0]);
    }
    printf("%d\n", ans);

    return 0;
}

《涨知识啦29》-DBR的工作原理及其在VCSEL中的作用 分布式布拉格(Distributed Bragg Reflection,简称DBR)反射镜是垂直腔面发射激光器(Vertical-Cavity Surface-Emitting Laser,简称VCSEL)的重要组成部分。典型的DBR反射镜是由1/4ni波长厚度的高折射率和低折射率材料交替组成(ni是该层的折射率)。其反射率取决于组成对数、边界条件以及折射率差。 图1 布拉格反射镜的工作原理 DBR反射镜的工作原理如图1所示。根据反射原理,当光从光疏介质n1射向光密介质n2(折射率n2>n1)时,反 阅读详情

相关推荐

方案设计之亿级排行榜方案设计

该方案通过 “Redis Zset 为核心 + 分治策略为骨架 + 多级优化为细节”,在亿级用户场景下实现了:本质是将 “亿级大问题” 拆解为 “千万级小问题”,用分布式思想和精细化设计平衡性能、可用性与成本。

shine0312的专栏 1100

洛谷 1171 售货员的难题 状压DP 解题报告

题目描述某乡有n个村庄(1输入输出格式输入格式:村庄数n和各村之间的路程(均是整数)。输出格式:最短的路程。输入输出样例输入样例#1:3 0 2 1 1 0 2 2 1 0输出样例#1:3 说明输入解释3 {村庄数}0 2 1 {村庄1到各村的路程}1 0 2 {村庄2到各村的路程}2 1 0 {村庄3到各村的路程}思路看到20想到状压。 这里DP[i][j]DP[i][j]表示i情况下走

Hawo11的博客 650

告别SquareLine!用免费的NXP GUI-Guider为海思3516AV300开发LVGL界面(附完整移植流程)

本文详细介绍了如何利用免费的NXP GUI-Guider工具为海思Hi3516AV300开发LVGL界面,包括环境配置、代码移植和性能优化等全流程实战指南。特别针对二维码组件缺失等常见问题提供解决方案,帮助开发者零成本构建高效嵌入式GUI系统。

weixin_28292761的博客 416

【洛谷P1171】售货员的难题【状压DP】

状压DP

ssllyr 331

Windows 10/11下彻底卸载Chrome的终极指南(附一键清理注册表脚本)

本文提供了一份在Windows 10/11系统中彻底卸载Google Chrome浏览器的终极指南。针对标准卸载后用户数据与注册表项残留的问题,文章详细介绍了从应用程序层、用户数据层到系统集成层的三层深度清理方法,并重点提供了安全高效的注册表清理脚本,确保浏览器所有痕迹被完全移除,解决重装冲突并释放磁盘空间。

elastic6hunter的博客 782

MagicDraw小白必看:BDD图中模块的5种属性详解(含SysML v1.6最新端口配置指南)

本文面向MagicDraw初学者,详细解析SysML BDD图中模块的五种核心结构属性,包括组成部分、引用、值、约束属性及端口。重点阐述了SysML v1.6中端口设计的范式转移,对比了完整端口与代理端口的区别与应用场景,并通过实战案例指导如何利用代理端口进行清晰的接口定义与系统架构设计。

rum55的博客 373

洛谷 P1171 售货员的难题

题目描述 某乡有n个村庄( 1 输入输出样例 输入样例#1 3 0 2 1 1 0 2 2 1 0 输出样例#1 3 说明 输入解释 3 {村庄数} 0 2 1 {村庄1到各村的路程} 1 0 2 {村庄2到各村的路程} 2 1 0 {村庄3到各村的路程} 题目分析 这道题大致是两种做法,一种是用搜索,加点剪枝.另一种是用状压DP.(目前还不太会状压DP...

tangzhide123yy的博客 388

7、Python高光谱分析工具(PyHAT)简介

Python高光谱分析工具(PyHAT)是一个开源、跨平台的Python库及图形用户界面,用于行星光谱数据的可视化与分析。它支持多种高光谱传感器数据,如火星勘测轨道飞行器的CRISM、月船1号的M3以及SELENE Kaguya SP点光谱仪,提供预处理、衍生产品生成、统计学习和机器学习分析功能。PyHAT基于Pandas和NumPy构建,兼容Jupyter和QGIS环境,旨在解决现有光谱分析方法缺乏开源实现、难以探索性分析和算法分散的问题。其模块化架构涵盖数据输入/输出、通用光谱变换、测绘与点观测工具及高

aa123的博客 138

洛谷状压DP做题记录

P2915 [USACO08NOV]奶牛混合起来Mixed Up 题面 确实是状压的入门题 用dp[i][j] 表示以i结尾,状态为j时的方案数,代码如下: #include<bits/stdc++.h> using namespace std; const int maxn=1e6+7; const int N=20; int n,k; int s[ma...

weixin_30417487的博客 208

【用unity实现100个游戏之1】制作类元气骑士、挺进地牢——俯视角射击游戏多种射击效果(二)(附源码)

这篇文章我们将继续实现曲线射击与两种不需要实体子弹的射击方式 源码在文章末尾。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 5060

X线DR医学图像 --- DR医用滤线栅及摩尔纹详解 (二) 摩尔纹的产生机理

1,横向摩尔纹的表现 2,纵向摩尔纹的表现 3,摩尔纹在pitch = 143μm(注:pitch为采样间隔/周期)的FPD上的表现。 4,摩尔纹的危害(严重的影响了临床诊断) 5,摩尔纹对胸片肺部肺纹理的破坏 6,滤线栅的频率(滤线栅生产厂家的产品参数)。判断摩尔纹产生的重要依据之一 7,DR平板探测器的采样频率/空间极限分辨率 l.........

松下J27录放机 4981

P1171 售货员的难题 - 状压DP【最短Hamilton路径】

P1171 售货员的难题 Sol: 最短Hamilton路径,经典的NPC问题,小数据可以通过状压DP 实现。 状态:\(f[i][j]\)表示当前在第i号点,且已经过的点的状态为j 时的最短Hamilton路径。 阶段:若以点为阶段,由于会从点i转移到点i+1,还可能从i+1转移到i-1,不具有无后效性,因此我们考虑以二进制状态为阶段进行转移。 决策:考虑由哪一个点转移而来。 转移:\...

dmqqndlx85675的博客 396

零基础学simulink仿真建模--使用Simulink来构建一个混合动力无人机中燃料电池与锂电池协同控制的仿真模型

延长飞行时间:燃料电池的能量密度高于锂电池,适合长时间稳定供电。提高功率密度:锂电池能够快速响应瞬时高功率需求,比如起飞和加速阶段。优化能源管理:通过有效的能量管理系统,可以根据实际需求动态调整燃料电池和锂电池的工作状态,从而提高整体效率。通过上述步骤,我们简要介绍了如何基于Simulink实现混合动力无人机中燃料电池与锂电池协同控制的仿真模型。

amy_mhd的博客 189

洛谷P1171 售货员的难题(状压DP)

题目描述: 某乡有n个村庄(1<n≤20),有一个售货员,他要到各个村庄去售货,各村庄之间的路程s(0<s<1000)是已知的,且A村到B村与B村到A村的路大多不同。为了提高效率,他从商店出发到每个村庄一次,然后返回商店所在的村,假设商店所在的村庄为1,他不知道选择什么样的路线才能使所走的路程最短。请你帮他选择一条最短的路。 分析: n很小,而且哪个村去过与没去过都可以用二进制1...

shamansi99的博客 605

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

洛谷P1171_状压dp

dp[i][j]:状态为i,当前到达节点是j的最短路径 状态转移方程:dp[(1&lt;&lt; j)|i][j] = Min(dp[(1&lt;&lt; j)|i][j], dp[i][k]+a[k][j]); 宏定义的min比stl快 #include &lt;cstdio&gt; #include &lt;cstring&gt; #include &lt;algorithm&gt; #...

喵 喵 喵~ 319

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

状压 DP 详解

状压 DP 其实约等于一个 DP 的小技巧,一般应用在处理一个或多个集合的问题中(因为状压 DP 的下标就是一个集合),而且在nnn太大的时候建议不要使用这种方法。(如果你不懂,那么就继续往下看。好吧你本来就不懂。

cwplh的博客 1245

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

洛谷P1171 售货员的难题【状压DP】

状态压缩;状压DP

niiick 470

洛谷 P1171 售货员的难题 【状压dp】

题目描述 某乡有n个村庄(1 输入输出格式 输入格式: 村庄数n和各村之间的路程(均是整数)。 输出格式: 最短的路程。 输入输出样例 输入样例#1: 复制 3 0 2 1 1 0 2 2 1 0 输出样例#1: 复制 3 说明 输入解释 3 {村庄数} 0 2 1 {村庄1到各村的路程} 1 0 2 {村庄2到各村的路程

Mychael的无声乐章 452

洛谷P1171 售货员的难题 Tsp问题

洛谷P1171 售货员的难题 状压DP 1 #include <cstdio> 2 #define For(i,j,k) for(int i=j;i<=k;i++) 3 #define min(a,b) ((a) < (b) ? (a) : (b)) 4 using namespace std ; 5 6 const int N = 21...

weixin_33812433的博客 238

洛谷P1171 售货员的难题

题目描述某乡有n个村庄(1< n <20),有一个售货员,他要到各个村庄去售货,各村庄之间的路程s(0< s <1000)是已知的,且A村到B村与B村到A村的路大多不同。为了提高效率,他从商店出发到每个村庄一次,然后返回商店所在的村,假设商店所在的村庄为1,他不知道选择什么样的路线才能使所走的路程最短。请你帮他选择一条最短的路。 输入输出格式 输入格式:村庄数n和各村之间的路程(均是整数)。输出

玫葵之蝶 591

洛谷P3226-集合选数(构造+状压dp)

题意:洛谷P3226 分析: 很巧妙的构造题! 构造思路:构造一个矩阵,矩阵的每行的元素都是前一行元素的222倍,每列的元素都是前一列的333倍。 例如: 1,3,9,271,3,9,271,3,9,27 2,6,18,542,6,18,542,6,18,54 4,12,36,1084,12,36,1084,12,36,108 观察这个矩阵可以发现,如果选取了一个数,那么这个数的上下左右就不能取了...

Chase的博客 224

一类单位转移的状压 dp

经典状态压缩 dp,看到n特别小就可以考虑二进制状态相关算法了。除了状态之间用位运算进行合并(我们已经做过许多类似的题目),减去某一位,实现状态之间的转移算是很常用的 trick 了。这算是我学到的第一个状压 dp 方法了,。

m0_60506105的博客 989

DP大家族——关于DP的梳理

本文总结了动态规划(DP)的基本概念和实现方法,包括一维和二维DP的应用。DP的核心思想是利用已知状态推导新状态,主要实现方式为递推和递归(记忆化搜索)。文章通过斐波那契数列、最大连续子序列和(一维DP)、最长上升子序列(LIS)及其优化方法,以及二维DP中的“马拦过河卒”问题等经典例题,详细讲解了DP的解题思路和优化技巧。此外,还介绍了空间优化方法如滚动数组,并展示了不同场景下DP的具体应用,帮助读者逐步掌握动态规划的基础知识和解题策略。

cwplh的博客 1211

2018.07.18 洛谷P1171 售货员的难题(状压dp)

传送门 感觉是一道经典的状压dp,随便写了一发卡了卡常数开了个O(2)O(2)O(2)优化水过。。。 我直接用dp[i][j]dp[i][j]dp[i][j]表示当前在第i个点,现在点的选取状况是j(二进制表示状态)。 这样的话直接位运算枚举出可以前去的点,然后转移状态。边界是所有点都被取过一遍。 代码如下: #include&amp;lt;bits/stdc++.h&amp;gt; using n...

苟为蒟蒻又何妨 401

洛谷 P1171:售货员的难题 ← 状态压缩DP + 最短 Hamilton 回路

本题的本质是求有向图的最小权值哈密顿回路。算法要求从村庄 1 出发,不重复走遍所有村庄,最后回到村庄 1,求最小的总路程。但是,题目给出的 n=20 时,全排列有 20! ≈ 2.433×10¹⁸ 种路线,就算剪枝,也不可能跑完,必然超时(TLE)。

hnjzsyjyj的专栏 754
上一篇: AtCoder Beginner Contest 218 D - Rectangles
下一篇: HDU-5418(状压dp+Floyd)
路过放个屁
博客等级 码龄6年 1粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值