【 OJ 】 HDOJ1046 旅行商TSP问题 [ 40 ]

6 篇文章 0 订阅
2 篇文章 0 订阅

此题虽然是水题,但是此类问题却不是一个水题

从图论的角度来看,TSP问题实质是在一个带权完全无向图中,找一个权值最小的Hamilton回路。由于该问题的可行解是所有顶点的全排列,随着顶点数的增加,会产生组合爆炸,它是一个NP完全问题。 
早期的研究者使用精确算法求解该问题,常用的方法包括:分枝定界法、线性规划法、动态规划法等。但是,随着问题规模的增大,精确算法将变得无能为力,因此,在后来的研究中,国内外学者重点使用近似算法或启发式算法,主要有遗传算法、模拟退火法、蚁群算法、禁忌搜索算法、贪婪算法和神经网络等。 
 

# include<iostream>
#include <iomanip>
using namespace std;
int main(void) {
	int n,nn;
	cin >> n; nn = 1;
	int c, k;
	double qrt2 = sqrt(2);
	while (n--) {
		cin >> c >> k;//输入长宽
		cout << "Scenario #" << nn++<<":\n";
		if (!(c & 1) || !(k & 1)) {
			cout.setf(ios::fixed);
			cout <<setprecision(2) << (double)c*k << endl;
		}
		else {
			cout.setf(ios::fixed);
			cout << setprecision(2) << (double)c*k+qrt2-1 << endl;
		}
		if (n)
			cout << endl;
	}
	system("pause");
	return 0;
}

最近没时间写这些东西,但是这些方法还是要写的.....先留着吧...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值