LuoguP1640[SCOI2010]连续攻击游戏如何设计成长尾词?

2026-04-02 14:200阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1641个文字,预计阅读时间需要7分钟。

LuoguP1640[SCOI2010]连续攻击游戏如何设计成长尾词?

当然可以,请您提供需要改写的原文,我会根据您的要求进行修改。

###思路首先要提一下的就是,这道题有很多种做法,比如说有二分图匹配、并查集、贪心、搜索等等。出于时间原因,我这里只写二分图匹配和并查集写法。####一、二分图匹配(匈牙利算法)这

思路

首先要提一下的就是,这道题有很多种做法,比如说有二分图匹配、并查集、贪心、搜索等等。出于时间原因,我这里只写二分图匹配和并查集写法。

一、二分图匹配(匈牙利算法)

这道题的这种做法思路比较难想(但也没有那么困难)。比较容易想到的就是把每个物品的两个属性作为两边的点,然后搞二分图匹配。但是这样做并不好做(我不清楚这样该怎么做)。

那我们可以考虑换一种思维方式。

我们可以对装置和其属性分别建点,然后从每个属性值分别向它所属的装备连有向边(注意一定是有向边,否则会出现全部都可以匹配的错误结果),然后在建好的二分图上跑匈牙利算法。

在统计答案时,我们从1开始依次枚举属性值,然后跑匈牙利,判断是否能够匹配。只要出现第一个不能匹配的情况,终止枚举,因为属性值必须要求连续。二分图匹配的主要思路就这些,如果不能理解,

可以多举几个例子分析一下,就很好懂了(这里因为我懒,就不提供分析了)。

最后就是一个小优化。由于每次跑匈牙利的时候都要清空vis数组,每次都清空会导致时间复杂度上升(不过好像也能过,我没试过)。因此我们可以将vis数组定义为int类型,再使用一个时间戳tot,就是

相当于每次把表示是否匹配的0,1换成了tot-1和tot。这样不会对程序造成影响,而且可以小幅压缩时间。

阅读全文

本文共计1641个文字,预计阅读时间需要7分钟。

LuoguP1640[SCOI2010]连续攻击游戏如何设计成长尾词?

当然可以,请您提供需要改写的原文,我会根据您的要求进行修改。

###思路首先要提一下的就是,这道题有很多种做法,比如说有二分图匹配、并查集、贪心、搜索等等。出于时间原因,我这里只写二分图匹配和并查集写法。####一、二分图匹配(匈牙利算法)这

思路

首先要提一下的就是,这道题有很多种做法,比如说有二分图匹配、并查集、贪心、搜索等等。出于时间原因,我这里只写二分图匹配和并查集写法。

一、二分图匹配(匈牙利算法)

这道题的这种做法思路比较难想(但也没有那么困难)。比较容易想到的就是把每个物品的两个属性作为两边的点,然后搞二分图匹配。但是这样做并不好做(我不清楚这样该怎么做)。

那我们可以考虑换一种思维方式。

我们可以对装置和其属性分别建点,然后从每个属性值分别向它所属的装备连有向边(注意一定是有向边,否则会出现全部都可以匹配的错误结果),然后在建好的二分图上跑匈牙利算法。

在统计答案时,我们从1开始依次枚举属性值,然后跑匈牙利,判断是否能够匹配。只要出现第一个不能匹配的情况,终止枚举,因为属性值必须要求连续。二分图匹配的主要思路就这些,如果不能理解,

可以多举几个例子分析一下,就很好懂了(这里因为我懒,就不提供分析了)。

最后就是一个小优化。由于每次跑匈牙利的时候都要清空vis数组,每次都清空会导致时间复杂度上升(不过好像也能过,我没试过)。因此我们可以将vis数组定义为int类型,再使用一个时间戳tot,就是

相当于每次把表示是否匹配的0,1换成了tot-1和tot。这样不会对程序造成影响,而且可以小幅压缩时间。

阅读全文