牛客小白16月賽 小石的妹子

2021-09-25 05:51:30 字數 869 閱讀 4831

題目:小石的妹子

題意:給n個妹子排序,i妹子比j妹子好的需要滿足ai>aj&&bi>bj,當然如果一大一小的是無法比較大小的,於是排名就相同。

思路:這是個二維偏序的問題,先對一維排序(即是按a從大到小排序),之後我們考慮b,

對於第k個妹子,在排序完之後,那麼他前面的妹子的a都比她的,於是考慮b即可,顯然,如果在k之前的所有妹子中b最大 

的妹子的排名是p,那麼k妹子的排名就是p+1.

由於b的資料範圍較大,我們可以先離散化,然後可以用線段樹或者數狀陣列去維護最大值的妹子的排名,以b的值為下                    標,排名為值。這裡我給出了用樹狀陣列的**,這裡考慮到樹狀陣列維護的字首和,所以為了找到比k大的排名,要把b               數 組的位置反轉一下,即關於中間位置調換位置。具體看**:

注意:這裡不能只是統計b大的數的個數,因為我們雖然可以知道有多少個妹子的a和b值都同時比k妹子大,但不知道他們之間內部的排名,但是知道最大值就可以知道k妹子的排名了。

#includeusing namespace std;

const int n =100*1000+10;

struct nodet[n];

int n,s[n];

int b[n],rak[n];

bool cmp(node a,node b)

int get_id(int x)

int lowerbit(int x)

void add(int x,int k)

int query(int x)

int main()

for(int i=1;i<=n;i++)cout

}

牛客小白月賽16 小石的妹子 (貪心 )

小石的妹子 時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 小石有 n 個妹子,每個妹子都有乙個細心程度 aia iai 和乙個熱心程度 bib ibi 小石想給她們乙個重要程度 tit iti 重要程度為 1 ...

牛客小白月賽16 小石的妹子 線段樹

小石的妹子 官方題解 因為有兩維的限制,所以我們先按 ai 從大到小排一下序,對於排序後的第 i 個妹子,她的排名就是 max 1 bj bi 那麼我們把排名 bi 當成下標,把 rki 當成值,用線段樹維護一下區間 max 即可。將bi排序,將每個妹子對應的bi變成排序後bi的編號,對ai進行從大...

牛客小白月賽16

很容易得到n 1時,因為小石先手,所以小石一定輸 而n!1時,假設n 5 小石先取1 小陽取2 4 小石去3 小陽輸,無論怎樣小石都有贏的機會 includeusing namespace std int main 打表求出1 1e3之間的所有三角形每層之和 include define ll lo...