P4802 [CCO 2015]路短最
这题的题意是 求一条 经过 起点和终点的 最长路径。且一个点只能经过一次。
我们设定 \(dis_{i,j}\) 为 i 到 j 的距离(应该没有重边)
要注意的是 不能用 \(Floyd\) 求最长路 这样会挂掉
因为你这样 就没办法保证 点 \(i\) 只经过一次
显然是状压dp 我们考虑 dp 状态 \(dp_{i,j}\)
\(i\) 表示当前位置 \(j\)表示走过的地方
#include<bits/stdc++.h>
using namespace std ;
#define int long long
#define fi first
#define se second
#define pb push_back
inline int read() {
register int x = 0 , f = 1 ;
register char c = getchar() ;
for( ; ! isdigit(c) ; c = getchar()) if(c == '-') f = -1 ;
for( ; isdigit(c) ; c = getchar()) x = (x << 1) + (x << 3) + (c & 15) ;
return x * f ;
}
template < typename T > inline bool cmax(T & x , T y) {
return x < y ? (x = y) , 1 : 0 ;
}
template < typename T > inline bool cmin(T & x , T y) {
return x > y ? (x = y) , 1 : 0 ;
}
template < typename T > inline bool cabs(T & x) {
return x > 0 ? 1 : (x = - x) , 0 ;
}
inline int QP(int x , int y , int Mod) {
int ans = 1 ;
for( ; y ; y >>= 1 , x = (x * x) % Mod)
if(y & 1) ans = (ans * x) % Mod ;
return ans ;
}
int n , m ;
const int N = 19 ;
int dis[N][N] ;
int dp[N][1 << N] ;
signed main() {
memset(dis , 0xcf , sizeof(dis)) ;
memset(dp , 0xcf , sizeof(dp)) ;
n = read() , m = read() ;
for(register int i = 1 ; i <= m ; i ++) {
int u = read() , v = read() , w = read() ;
dis[++ u][++ v] = w ;
}
for(register int i = 2 ; i <= n ; i ++) dp[i][1 + (1 << i - 1)] = dis[1][i] ;
int s = (1 << n) - 1 ;
for(register int i = 2 ; i <= s ; i ++) {
for(register int j = 1 ; j <= n ; j ++) {
if((i & (1 << j - 1)))
for(register int k = 1 ; k <= n ; k ++) {
if(j ^ k && (! (i & (1 << k - 1)))) {
cmax(dp[k][i | (1 << k - 1)] , dp[j][i] + dis[j][k]) ;
}
}
}
}
int ans = 0 ;
for(register int i = (1 << n - 1) + 1 ; i <= s ; i ++)
cmax(ans , dp[n][i]) ;
printf("%lld\n" , ans) ;
return 0 ;
}
P4802 [CCO 2015]路短最的更多相关文章
- [ CCO 2015 ] Artskjid
\(\\\) \(Description\) \(N\)个点\(M\)条边的有向图,求从\(0\)号节点出发,\(N-1\)号节点结束,且图中每个点至多经过一次的最长路. \(N\in[2,18]\) ...
- linuxtoy.org资源
https://linuxtoy.org/archives.html Archives 在 Android 系统上安装 Debian Linux 与 R (2015-07-14) Pinos:实现摄像 ...
- HDU 2544 最短路 (最短路,spfa)
题意:中文题目 思路:spfa+SLF优化.关于SPFA的详情请戳我 #include <bits/stdc++.h> using namespace std; , INF=0x7f7f7 ...
- POJ 3255 Roadblocks (次短路 SPFA )
题目链接 Description Bessie has moved to a small farm and sometimes enjoys returning to visit one of her ...
- 我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)
2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算 ...
- java攻城师之路(Android篇)--搭建开发环境、拨打电话、发送短信、布局例子
一.搭建开发环境 1.所需资源 JDK6以上 Eclipse3.6以上 SDK17, 2.3.3 ADT17 2.安装注意事项 不要使用中文路径 如果模拟器默认路径包含中文, 可以设置android_ ...
- 路冉的JavaScript学习笔记-2015年2月5日
1.为Js原始值创建临时对象,并进行属性引用 var s="text"; s.len=4;//这里Js调用new String(s)的方法创建了一个临时对象,用来属性引用 cons ...
- 单路CPU性能排名 更新于2015.10.6
http://itianti.sinaapp.com/index.php/cpu 排名 处理器 图例 分数 1 Intel Xeon E5-2699 v3 @ 2.30GHz 22892 2 Inte ...
- 2015暑假acm短训小结
时间很快,短训已经结束,短短20天,心里有一些思绪想要记下. 收获: 从最近发的随笔中可以看出,做得最多的是搜索——Dfs,Bfs.对于搜索,如何描述状态,如何压缩状态,如何决定下一个结点,是否可以剪 ...
随机推荐
- python练习——第1题
原GitHub地址:https://github.com/Yixiaohan/show-me-the-code 题目:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激 ...
- Go语言实现:【剑指offer】把字符串转换成整数
该题目来源于牛客网<剑指offer>专题. 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 输入描述: 输入一个字符串,包括数字字母符号,可以为空. 输出描述: 如果是合 ...
- 一次修改数据库物理文件造成Mysql宕机的恢复记录
事件起始 某夜,我正在床上冥想准备入睡,忽然同事向我求救:消息内容如下: Oh My Gold 改了些配置,啥都没了!都没了!没了!了! 我仔细询问,原来是她因为某些原因将某库的物理文件夹改名后,发现 ...
- OSPF RFC2740
2.5. Use of link-local addresses IPv6 link-local addresses are for use on a single link, for purpose ...
- python新手如何编写一个猜数字小游戏
此文章只针对新手,希望大家勿喷,感谢!话不多说先上代码: import random if __name__ == '__main__': yourname = input("你好! 你的名 ...
- Web登录配置-H3C-S5120-LI系列
1.开启http服务和修改端口号 ip http enable ip http port 80 2.添加用户和密码.用户名:admin.密码:admin@123 [Sysname] local-us ...
- Git用法(一)
一.通过本地管理推送到github(仓库本来有文件) 1.clone到本地git clone 我的GitHub地址(ssh地址)(ps:新增文件一定要切换到项目目录下再操作)2.提交到本地仓库(1)g ...
- asp.net网站作为websocket服务端的应用该如何写
最近被websocket的一个问题困扰了很久,有一个需求是在web网站中搭建websocket服务.客户端通过网页与服务器建立连接,然后服务器根据ip给客户端网页发送信息. 其实,这个需求并不难,只是 ...
- R12客户表结构分析
客户表/联系人/PARTY关联 HZ_PARTIES 客户账户表 HZ_CUST_ACCOUNTS 例子: select hp.party_number --客户注册标识 ...
- pikachu-SQL注入漏洞
一.SQL Inject 漏洞原理概述 1.1 什么是数据库注入漏洞 数据库注入漏洞,主要是开发人员在构建代码的时候,没有对用户输入的值的边界进行安全的考虑,导致攻击者可以通过合法的输入点提交 ...