随笔分类 -  谜之状压dp

摘要:题目链接 "传送门" 题意 现总共有$n$个题目$k$支参赛队伍,已知每个题目各队伍是否会写,现问你能否从题目中选出一个子序列使得每支队伍最多只会写一半的题目。 思路 对于每个题目我们用二进制压缩所有队伍的情况,然后通过枚举状态看是否存在两种完全不同的状态是否同时出现过。 代码实现如下 cpp in 阅读全文
posted @ 2019-07-10 11:11 Dillonh 阅读(174) 评论(0) 推荐(0)
摘要:题目链接:http://csustacm.com:4803/problem/1016 题目: 思路:状压dp+最短路,比赛的时候有想到状压dp,但是最短路部分写挫了,然后就卡死了,对不起出题人~dis[i][j]表示状态i下目的地为j时的最短路。 代码实现如下: 阅读全文
posted @ 2018-08-10 21:11 Dillonh 阅读(242) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=2288 题目: 题意:求Hamilton 路径权值的最大值,且求出有多少条权值这么大的Hamilton路径。 思路:状压dp,dp[i][j][k]表示第i种状态下倒数第二个岛屿为j倒数第一个岛屿为k下的权值,cnt[i][j][k]记 阅读全文
posted @ 2018-08-09 17:05 Dillonh 阅读(452) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3001 题目: 题意:n个城市,m条边,每条边都有一个权值,问你经过所有的城市且每条边通过次数不超过两次的最短距离。 思路:状压dp+三进制,dp[i][j]表示在状态i下以j为目标城市的最短距离,转移方 阅读全文
posted @ 2018-08-09 11:03 Dillonh 阅读(302) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=3311 题目: 题意:n个城市,每两个城市间都存在距离,问你恰好经过所有城市一遍,最后回到起点(0)的最短距离。 思路:我们首先用floyd预处理出每两个城市间的最短路,然后采用状压dp来解题。dp[i][j]表示在i这种状压下以j为目 阅读全文
posted @ 2018-08-09 10:58 Dillonh 阅读(350) 评论(0) 推荐(0)