CodeForces - 993C Careful Maneuvering(几何+暴力+状态压缩)
生活随笔
收集整理的這篇文章主要介紹了
CodeForces - 993C Careful Maneuvering(几何+暴力+状态压缩)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目鏈接:點擊查看
題目大意:在 x = -100 的直線上有 n 個敵方飛船,在 x = 100 的直線上有 m 個敵方飛船,現(xiàn)在在 x = 0 的直線上可以選擇兩個點作為誘餌,使得兩側的飛船瞄準射擊,問如何才能擊落盡量多的飛船
題目分析:因為 n 和 m 只有 60,所以在 x == 0 時至多有 n * m 個交點,然后去 O( n^2 ) 去枚舉交點暴力計算答案即可,對于每個交點來說,狀壓記錄一下兩側可以擊落的飛船,然后維護一下最大值就好了
更簡單的一個思路就是,因為兩側的飛船分別位于 x = -100 和 x = 100 這兩條直線上,換句話說,其交點在 x = 0 的位置等價于其中點的位置,所以直接維護所有中點的位置然后繼續(xù)上述操作就可以了
一個自己踩到的坑就是,__builtin_popcount()函數(shù)的形式參數(shù)是 unsinged int,所以需要自己手寫一個函數(shù)用來計算二進制下有多少個 “1”
還有一個坑就是兩個誘餌所在的位置可能相同
代碼:
?
?
總結
以上是生活随笔為你收集整理的CodeForces - 993C Careful Maneuvering(几何+暴力+状态压缩)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CodeForces - 1427C T
- 下一篇: CodeForces - 487B St