这是强行交互么qaq
我们可以把所有点都对称到主对角线下方。
然后每个点如果想被覆盖都会有一个最小的三角形,我们可以贪心的只留必须选的点。如果把剩下的点按x坐标升序排序,可以发现他们的y坐标也是升序排序的。
记剩余点个数为n,显然每个点都选自己的最小三角形最好。但是有可能n>K,即我们不得不合并一些连续的最小三角形。可以dp,f[i][k]表示覆盖前i个点,用了k个三角形的最少覆盖点。枚举j,把j+1~i用一个三角形覆盖,转移即可。
f[i][k]=f[j][k−1]+(<
这篇博客介绍了如何解决IOI2016中的一道题目aliens。作者首先将所有点对称到主对角线下方,然后通过贪心策略选择最小三角形覆盖点。当点的数量超过限制时,使用动态规划(DP)进行优化,通过斜率优化将复杂度降低到O(nk)。由于仍然无法通过,进一步采用了WQS(Weighted Quick Select)算法进行二分查找,最终达到O(nlogm)的复杂度。
这是强行交互么qaq
我们可以把所有点都对称到主对角线下方。
然后每个点如果想被覆盖都会有一个最小的三角形,我们可以贪心的只留必须选的点。如果把剩下的点按x坐标升序排序,可以发现他们的y坐标也是升序排序的。
记剩余点个数为n,显然每个点都选自己的最小三角形最好。但是有可能n>K,即我们不得不合并一些连续的最小三角形。可以dp,f[i][k]表示覆盖前i个点,用了k个三角形的最少覆盖点。枚举j,把j+1~i用一个三角形覆盖,转移即可。
f[i][k]=f[j][k−1]+(<
398
1923

被折叠的 条评论
为什么被折叠?