摘要: 原题 题目链接 题目分析 了解题意后会发现跑两次最短路就能解决问题了,首先考虑奶牛们回家时的路径,其实只要从聚餐点跑一次最短路,记为dis2[],而考虑奶牛们出发时的最短路,只需要把所有边反置一下,再从聚餐点跑一遍最短路,记为dis[],最后只需要找出牛i使得dis[i]+dis2[i]的值最小即为 阅读全文
posted @ 2019-08-27 15:15 VBL 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 题目要求判断是否存在一条回路,使得回路的距离之和为负数,其实就是图中是否存在负圈,因此可以用bellman来判负圈,如果bellman更新了n次则证明出现负圈,因为n个点构成的图最多只能有由n-1条边构成的最短路.bellman跑了n次则证明存在n条边构成的最短路. 代码 阅读全文
posted @ 2019-08-27 15:05 VBL 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 最短路问题,题目要求与其他牛平均最小分离度,事实上就是先求出这头牛到其他所有牛的最短距离之和在求个平均值.题目所给的一群牛上演一个电影其实就是这群牛之间互相存在一条长度为1的边.由于题目要求任意两点的最短路,所以选用Floyd算法来实现.最后找出最短距离之和ans后,ans 阅读全文
posted @ 2019-08-27 14:49 VBL 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 并查集经典用法,是维护信息的并查集.由于只有两个帮派,那对于每个人需要给它创建两条信息,属于1帮派和属于2帮派.这两条信息是相互矛盾的.当得到一条信息,a和b不是同伙的时候,只需要合并a是1帮派的信息和b是2帮派的信息以及a是2帮派的信息和b是1帮派的信息即可.这道题保证信 阅读全文
posted @ 2019-08-27 14:28 VBL 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 比较明显的并查集题目,先用一个标记数组表示电脑的修复状态,每当修复一个电脑,就用标记数组标记一下,然后遍历一下所有电脑,如果遍历的电脑已被修复且在该电脑连接距离范围内,就合并这两个电脑.查询的话就是常规的并查集查询操作. 代码 阅读全文
posted @ 2019-08-27 14:19 VBL 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 题目要求取中位数,我们可以枚举以每个牛的分数作为中位数,然后选出最省钱的方案,最后只需要看花钱数不超过F中的最高的中位数分数即可.说一下具体实现,先对所有牛按分数从小到大排序,选出最省钱的方案可以用优先队列来选,设half=n/2,当优先队列的牛超过half个的时候就把一个 阅读全文
posted @ 2019-08-27 14:09 VBL 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 贪心题,想一下就会发现对于一种防晒乳,应该优先给那些最大SPF等级较低的牛用.因为他们能用的防晒乳更少.实现的话只需要把防晒乳的SPF等级按小到大排序,然后没遍历一种防晒乳就把能用这瓶防晒乳的牛全部加入一个优先队列中,优先队列取出最大SPF等级最小的牛即可. 代码 阅读全文
posted @ 2019-08-27 13:12 VBL 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 明显的01背包,但还是由细节需要处理,设置dp[i][j]=前i头牛中选的TF为j时最大的TS值,由于TF可能为负数因此要加一个基数使其在大于等于零,dp初始化为-1,dp[0][0]=0.更新的时候dp[i][j]=max(dp[i-1][j-f[i]]+s[i],dp[ 阅读全文
posted @ 2019-08-26 22:07 VBL 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 多重背包题,在放入的时候需要按a的大小排序.定义dp[i][j]为前i个积木凑成j高度,第i个物品最多剩下多少,然后j从0遍历到a[i],dp初始化为-1,dp[0][0]=0.更新方式跟多重背包完全一样,if(dp[i-1][j]!=-1) dp[i][j]=c[i];e 阅读全文
posted @ 2019-08-26 19:28 VBL 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 有点难的dp,首先可以这样定义dp[j][k],选了j个人,它们的p[i]-d[i]的和为k,此时的最大p[i]+d[i]的值,由于p[i]-d[i]的值可能为负,所以必须处理一下,也就是让k的值加上m*20(也就是设k=m*20为0),就可以保证k的值为非负整数.这个dp 阅读全文
posted @ 2019-08-26 15:58 VBL 阅读(170) 评论(0) 推荐(0) 编辑