1.题目描述:点击打开链接
2.解题思路:原来按照紫书上的思路进行剪枝,发现总是TLE,==,也许是我还没有正确地理解书上的思路吧。无奈之下只好枚举全排列,用函数计算每个排列的k值,发现又TLE,==,最终换成在循环中计算k值,终于AC了。。。
3.代码:
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<algorithm>
#include<string>
#include<sstream>
#include<set>
#include<vector>
#include<stack>
#include<map>
#include<queue>
#include<cassert>
#include<cstdlib>
#include<cstdio>
#include<ctime>
#include<cmath>
#include<cstring>
#include<functional>
using namespace std;
const int maxn = 30;
const int M = 26;
int g[maxn][maxn];//邻接矩阵
int vis[maxn], b[maxn], permu[maxn],order[maxn];//vis标记该字母存在,b存储带宽,order存储排列
int k;//带宽