首页 > 其他分享 >题解 TSP 但是你有约束

题解 TSP 但是你有约束

时间:2022-08-20 17:24:21浏览次数:70  
标签:pre 10 last int 题解 约束 MAXN 要么 TSP

Description

给定一张带权完全图,求一条路径满足

  1. 不重复经过一个点。
  2. 在过点 \(i\) 时,\(1\cdots i - 1\) 要么全访问过,要么都没有访问过。

点数 \(n\) 有 \(1\le n\le 1e3\)

Solution

% 你赛唯一做出来一道题 wwwwwwww QAQ

花了 1h30min 发现自己找的规律不对 QAQ

所以找规律最好还是要写个暴力验证一下(((((


首先这题编号一定是一个单谷序列。

我们考虑从大到小往序列里面加数,单谷序列有下降一段,谷底和上升一段。

从小到大加数,要么放最前面,要么放最后面。

\(pre\) 代表序列第一个数字,\(last\) 代表最后一个数字,\(u\) 代表加入的数字,\(u\) 要么然放最前面,要么然放最后面

代码

#include <iostream>
#include <cstring>
#define MAXN 1541
using namespace std;
int n, d[MAXN + 10][MAXN + 10];
int f[MAXN + 10][MAXN + 10];
int dfs(int u, int pre, int last) {//记忆化搜索 qwq
	if(f[pre][last] != -1) return f[pre][last];
	if(u == 1) return d[1][pre] + d[1][last];
	f[pre][last] = min(d[last][u] + dfs(u - 1, pre, u), d[pre][u] + dfs(u - 1, u, last));
	return f[pre][last];
}
int main() {
//	freopen("in.txt", "r", stdin);
//	freopen("1.txt", "w", stdout);
	memset(f, -1, sizeof(f));
	cin >> n;
	for(int p = 1; p <= n; p++)
		for(int i = 1; i <= n; i++)
			cin >> d[p][i];
	cout << dfs(n, 0, 0) << endl;
} 

标签:pre,10,last,int,题解,约束,MAXN,要么,TSP
From: https://www.cnblogs.com/thirty-two/p/16608184.html

相关文章

  • 题解 Trie 但是你要最小化它的节点数量
    名字瞎取的Description给定\(n\)个字符串\(s\),可以对\(s_i\)的字符打乱,将这些字符串加入一个trie里面求节点数量最小值。\(n\le16,\sum|s_i|\le10^6\)。So......
  • 虚拟机jvm和hotspot的联系与区别
    JVM是虚拟机,总的来说是一种标准规范,虚拟机有很多实现版本。主要作用就是运行java的类文件的。而HotSpot是虚拟机的一种实现,它是sun公司开发的,是sunjdk和openjdk中自带的......
  • MYSQL-->函数与约束条件
    函数用法函数最常用的地方就是查询语句处select函数(字段)from表名;select字段列表from表名groupby分组字段having函数(字段);字符串函数(字符串要用引......
  • Codeforces Round #815 (Div. 2) 题解
    CF1720A.BurenkaPlayswithFractions给出两个分数$\dfrac{a}{b}$和\(\dfrac{c}{d}\),你每次操作能够选择其中一个分数的分子或分母,将其乘上任意一个整数(当然不能......
  • 2022 牛客多校 Extra & 第九场部分题解
    2022牛客多校第九场&Extra部分题解前段时间沉迷生活大爆炸&原神&vtb&galgame&番无法自拔,因此咕到现在。。。Cmostp挺妙的题。本以为有一只log的做法。......
  • 题解CF94B Friends
    简洁题意:求出任三点之间是否存在直接连通或都不连通,若存在,输出WIN,否则输出FAIL由于数据范围非常小,m<=10,则我们可以采用暴力枚举三个点的方式求出答案#include<bit......
  • Interesting Sum - 题解【思维】
    InterestingSum-题解【思维】前言在vscode上配置了markdown插件,取代了之前写md的工具,本博客用来测试插件好不好用,所以选的题比较简单。但是jiangly这道题被FST了【滑......
  • VirtualBox 找不到桥接网卡问题解决
    1、选择下面驱动2、就可以选择了......
  • 基础数论专题题解集(暂未全部AC)
    A-青蛙的约会题面两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它......
  • CF Round 815 Div2 题解
    A题BurenkaPlayswithFractions(签到)给定2个分数\(\dfrac{a}{b},\dfrac{c}{d}\),现在可以自行进行操作,每次选定一个分数,将其分子或者分母乘上一个数,问至少需要多少次......