日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

AC_Dream 1216 G - Beautiful People

發(fā)布時(shí)間:2025/3/8 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AC_Dream 1216 G - Beautiful People 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題意:
有n個(gè)人每人有一個(gè)力氣值Si,美麗值Bi,滿足Bi>Bj&&Si>Sj 或者 Bi<Bj&&Si<Sj 的人可以
一起參見(jiàn)晚會(huì),問(wèn)最多有多少人可以一起參見(jiàn)晚會(huì)。
思路: 我們根據(jù)S從小到大將所有人排序,然后看B最長(zhǎng)的上升子序列的長(zhǎng)度求出來(lái)即可!
在排序中優(yōu)先對(duì)S排序,S相等的則對(duì)B進(jìn)行由大到小的排序,why?
也就是對(duì)于S相同的,我們先選取B最大的值插入LIS中,因?yàn)楸热?S1=1, B1 = 1
S1=1, B1 = 2, S1=1, B1 = 3, 如果不進(jìn)行排序,直接按照求B中的lis,顯然長(zhǎng)度
為3,顯然是不對(duì)的,因?yàn)橄嗤腟中只能選擇一個(gè)B出來(lái)!所以就要對(duì)S相同的B進(jìn)行
降序排序! 這樣就變成了一個(gè)裸lis!

1 #include<iostream> 2 #include<cmath> 3 #include<cstring> 4 #include<algorithm> 5 #include<cstdio> 6 #define N 100005 7 using namespace std; 8 9 struct node{ 10 int x, y; 11 int p; 12 }; 13 14 bool cmp(node a, node b){ 15 if(a.x == b.x) 16 return a.y > b.y; 17 return a.x < b.x; 18 } 19 20 bool myCmp(node a, node b){ 21 return a.y <= b.y;//這里要寫成 <=;因?yàn)閡pper_bound返回的是“元素值 >插入值” 22 //最后一個(gè)插入值的位置,元素值 == 插入值的時(shí)候,默認(rèn) 元素值 23 // >插入值,但在該題中,相等的情況下不能算在lis中的! 24 } 25 26 node a[N]; 27 node c[N]; 28 29 int pre[N], path[N]; 30 31 int main(){ 32 int n; 33 while(scanf("%d", &n) != EOF){ 34 for(int i=0; i<n; ++i) 35 scanf("%d%d", &a[i].x, &a[i].y), a[i].p = i+1; 36 37 sort(a, a+n, cmp); 38 c[0] = a[0]; 39 pre[0] = 0; 40 path[0] = 0; 41 int len = 1; 42 43 for(int i=1; i<n; ++i){ 44 int k = upper_bound(c, c+len, a[i], myCmp) - c; 45 pre[i] = k ? path[k-1] : 0;//當(dāng)前插入節(jié)點(diǎn)i的位置為k,它的前一個(gè)(k-1位置)元素的序號(hào)! 46 path[k] = i;//當(dāng)前插入k位置的節(jié)點(diǎn)的序號(hào) 47 c[k] = a[i]; 48 if(k+1 > len) len = k+1; 49 } 50 int tmp = path[len-1]; 51 printf("%d\n", len); 52 printf("%d", a[path[len-1]].p); 53 for(int i=len-2; i >= 0; --i){ 54 tmp = pre[tmp]; 55 printf(" %d", a[tmp].p); 56 } 57 printf("\n"); 58 59 } 60 return 0; 61 } View Code

?

轉(zhuǎn)載于:https://www.cnblogs.com/hujunzheng/p/4004777.html

總結(jié)

以上是生活随笔為你收集整理的AC_Dream 1216 G - Beautiful People的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。