博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
游览计划 状压DP
阅读量:5123 次
发布时间:2019-06-13

本文共 1108 字,大约阅读时间需要 3 分钟。

【题目描述】

山山获得了长沙城内所有景点的门票各一张。然而,长沙城的交通并不发达,只有部分景点
之间有双向道路可供通行。一张门票只能被用一次,因而一个景点只能被经过一次。山山对
景点并不感兴趣,但是对路旁的花草却非常着迷。他希望从 1 号景点出发,走尽量长的路程,
在任意景点结束。你需要告诉他至多能走多长的路。

【输入格式】
第一行两个整数 n m
接下来 m 行,每行三个整数 s t w,表示从 s 号景点到 t 号景点有一条长为 w 的
双向道路。数据保证 s!=t,不保证同一对 s t 只出现一遍

【输出格式】
一行一个整数,表示最长路径长度

【样例输入】
3 3
1 2 1
2 3 2
1 3 4

【样例输出】
6

【数据范围】
100%的数据保证 1 ≤ n ≤ 10; 1 ≤ w ≤ 100


 

一开始用的dfs做这题,然后发现不好剪枝,然后就干脆写了状压DP。

其他的都写在注释里了。

代码:

 

#include
#include
#include
#include
#include
#define ll long long#define il inline#define db double#define max(a,b) ((a)>(b)?(a):(b))#define min(a,b) ((a)<(b)?(a):(b))using namespace std;il int gi(){ int x=0,y=1; char ch=getchar(); while(ch<'0'||ch>'9') { if(ch=='-') y=-1; ch=getchar(); } while(ch>='0'&&ch<='9') { x=x*10+ch-'0'; ch=getchar(); } return x*y;}int dist[145][145];int f[100045][11];//dang qian zai jint main(){ freopen("travel.in","r",stdin); freopen("travel.out","w",stdout); int n=gi(),m=gi(); int top=(1<

 

转载于:https://www.cnblogs.com/gshdyjz/p/7681838.html

你可能感兴趣的文章
mac OS环境下的PHP环境配置
查看>>
HIVE数据操作
查看>>
Saving Activity state in Android
查看>>
SquirrelMQ消息队列
查看>>
剑指Offer_编程题_4
查看>>
有多少人忽视了这简单的道理,又有多少人觉得理所當然。。。。
查看>>
练习笔记:net,JqueryUI实现自动补全功能
查看>>
[转帖]SQL中partition关键字的使用
查看>>
小程序实战小汇总
查看>>
inner join 与 left join 之间的区别
查看>>
系统对接API调用
查看>>
POJ 3398 Perfect Service(树型动态规划,最小支配集)
查看>>
Servlet的生命周期和工作原理
查看>>
【树链剖分模板】bzoj1036 树的统计
查看>>
一些作业
查看>>
ajax使用异步问题
查看>>
唯有志存高远,方能风行天下
查看>>
Linux产生序列数字
查看>>
【循序渐进学Python】9.异常处理
查看>>
&quot;围观&quot;设计模式(7)--创建型之单例模式(Singleton Pattern)
查看>>