日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BZOJ 1071组队

發布時間:2025/3/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ 1071组队 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

 題目鏈接:http://www.lydsy.com/JudgeOnline/problem.php?id=1071

題目很好,居然寫了很久,題解找了真多;

主要兩種做法:

O(n^2lgn),通過優先堆維護,首先 等式變換:A*height+B*speed-C<=A*minheight+B*minspeed;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 增加a[i].val=A*height+B*speed-C:

?對a按height排序;

然后枚舉i 把a[i].s作為min

1 /* *********************************************** 2 Author :forgot93 3 Created Time :2014/12/23 星期二 上午 9:00:41 4 File Name : 5 ************************************************ */ 6 7 #include <stdio.h> 8 #include <string.h> 9 #include <iostream> 10 #include <algorithm> 11 #include <vector> 12 #include <queue> 13 #include <set> 14 #include <map> 15 #include <string> 16 #include <stdlib.h> 17 #include <time.h> 18 using namespace std; 19 20 #define N 5555 21 typedef long long ll; 22 priority_queue<ll> q; 23 24 struct node 25 { 26 ll h,s; 27 ll val; 28 bool operator < (const node &b) const{ 29 return h>b.h; 30 } 31 }a[N]; 32 33 34 int main() 35 { 36 int n; 37 ll A,B,C; 38 cin>>n>>A>>B>>C; 39 for (int i=1;i<=n;i++){ 40 cin>>a[i].h>>a[i].s; 41 a[i].val=A*a[i].h+B*a[i].s-C; 42 } 43 ll ans=1; 44 sort(a+1,a+n+1); 45 46 for (int i=1;i<=n;i++) 47 { 48 ll minh=a[i].h; 49 ll mins=a[i].s; 50 while (!q.empty()) q.pop(); 51 q.push(a[i].val); 52 for (int j=1;j<=n;j++) 53 if (j!=i&&a[j].s>=mins) 54 { 55 minh=min(minh,a[j].h); 56 ll tmp=B*mins+A*minh; 57 if (a[i].val>tmp) break; 58 while (!q.empty()&&q.top()>tmp) q.pop(); 59 if (a[j].val<=tmp) 60 { 61 q.push(a[j].val); 62 ans=max(ans,(ll) q.size()); 63 } 64 } 65 } 66 cout<<ans<<endl; 67 return 0; 68 } View Code

?

speed;

接著暫時minheight=a[i].h;

a[i].h 是從大到小排序的;

接下來維護堆,我們枚舉j 對于j!=i且a[j].s>=mins,

同時更新minheight;

然后把val滿足的壓入堆中;

對q.top()>val q.pop();

因為mins固定,minh是單調遞減的所以前面滿足的后面也會滿足(這里請仔細考慮);

時間是1100ms;

第二種是o(n*n);

時間是848ms;

關鍵字:單調;

1 /* *********************************************** 2 Author :forgot93 3 Created Time :2014/12/23 D??ú?t ???? 2:46:36 4 File Name :c.cpp 5 ************************************************ */ 6 7 #include <stdio.h> 8 #include <string.h> 9 #include <iostream> 10 #include <algorithm> 11 #include <vector> 12 #include <queue> 13 #include <set> 14 #include <map> 15 #include <string> 16 #include <math.h> 17 #include <stdlib.h> 18 #include <time.h> 19 using namespace std; 20 21 typedef long long ll; 22 #define N 5555 23 struct node 24 { 25 int h,v; 26 ll val; 27 }H[N],V[N],a[N],r[N]; 28 29 int cmp1(node x,node y) 30 { 31 if (x.h==y.h) return x.v<y.v; 32 return x.h<y.h; 33 } 34 int cmp2(node x,node y) 35 { 36 if (x.v==y.v) return x.h<y.h; 37 return x.v<y.v; 38 } 39 40 int cmp3(node x,node y) 41 { 42 return x.val<y.val; 43 } 44 45 46 int main() 47 { 48 int n; 49 ll A,B,C; 50 cin>>n>>A>>B>>C; 51 for (int i=0;i<n;i++){ 52 cin>>a[i].h>>a[i].v; 53 a[i].val=A*a[i].h+B*a[i].v-C; 54 H[i]=V[i]=a[i]; 55 } 56 sort(a,a+n,cmp3); 57 sort(V,V+n,cmp2); 58 sort(H,H+n,cmp1); 59 int ans=0; 60 for (int i=0;i<n;i++) 61 { 62 int minh=H[i].h,p=0,cnt=0,tot=0; 63 for (int j=0;j<n;j++) 64 if (V[j].h>=minh&&V[j].v<=H[i].v) 65 r[tot++]=V[j]; 66 for (int j=0;j<tot;j++) 67 { 68 int minv=r[j].v; 69 ll res=A*minh+B*minv; 70 while (p<n&&a[p].val<=res) 71 { 72 if (a[p].h<minh||a[p].v<minv) cnt++; 73 p++; 74 } 75 ans=max(p-cnt,ans); 76 if (res>=A*r[j].h+B*r[j].v-C) cnt++; 77 if (p==n) break; 78 } 79 } 80 printf("%d\n",ans); 81 return 0; 82 } View Code 

首先 按照某些關鍵字排序。

for i minh=a[i].h;

然后枚舉 j 尋找mins,mins<a[i],s;

然后是單調隊列;

有這樣一個性質:我們枚舉指針的時候是按val 從小到大拍好順序的,我們枚舉的mins也是從小到大的,所以:

(這里) 前面的元素一定滿足后面的,怎么理解?

枚舉的mins2能夠滿足mins1的所有元素,所以指針p不必歸0了。

所以就會O(n^2);

?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

轉載于:https://www.cnblogs.com/forgot93/p/4180221.html

總結

以上是生活随笔為你收集整理的BZOJ 1071组队的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩在线观看精品 | 亚洲国产乱 | 国产va视频 | 亚洲一区二区精品在线 | 夜夜夜操 | 深夜激情视频 | 中国精品久久久 | 久久久久久久久久网站 | 午夜福利视频 | 久艹av| 午夜激情视频在线 | a级片国产 | 自拍偷拍21p | 久草精品在线观看视频 | 天堂av2019 | 日韩在线观看视频免费 | 免费拍拍拍网站 | 男人天堂网在线 | 国产精品久久久久久久久免费桃花 | 久久精品国产亚洲a | jzzijzzij亚洲成熟少妇在线播放 狠狠躁日日躁夜夜躁2022麻豆 | 成年人在线免费观看视频网站 | 欧美高清一区 | 韩国黄色精品 | 成人一二三四区 | 日本精品在线视频 | 天天干天天操 | 爽爽免费视频 | 美国av一区二区 | 久久a级片| 天天综合精品 | 色爽黄| 日本黄色激情视频 | 亚洲一区二区三区蜜桃 | 在线观看中文字幕一区 | 国产三级国产精品国产专区50 | 在线免费av网址 | 婷婷av在线 | 被黑人各种姿势猛c哭h文1 | 国产l精品国产亚洲区久久 午夜青青草 | 亚洲av电影一区 | 亚洲av无码成人精品区 | 性xxxx欧美老肥妇牲乱 | 一本大道伊人av久久综合 | 黄色免费小视频 | 午夜影院在线观看18 | 日本精品一区二区三区视频 | 爱上av| 国产福利网站 | 91丨porny丨在线中文 | 久久av色| 欧美激情亚洲激情 | 美女视频在线免费观看 | 麻豆免费下载 | 小优视频污 | 三级黄色片免费观看 | 国产午夜一级一片免费播放 | 好吊妞视频在线观看 | 午夜激情网址 | 国产美女视频免费观看下载软件 | 久国产| 男同互操gay射视频在线看 | 免费麻豆国产一区二区三区四区 | 四虎一区二区三区 | 6080毛片| 中国一极毛片 | 香蕉成视频人app下载安装 | 久草香蕉在线 | 伦av综合一区 | 欧美日韩在线视频一区二区三区 | 日韩中文字幕网 | 久久精品大全 | 日韩一道本| 国产精品一区在线观看 | 老熟妻内射精品一区 | 人妻夜夜爽天天爽三区麻豆av网站 | 精品国产免费看 | 一节黄色片 | 国产免费a视频 | 亚洲区免费 | 日本不卡视频一区二区三区 | 91久精品 | 人人干干 | 在线爱情大片免费观看大全 | 不卡一二三 | 人妻激情文学 | 亚洲精品久久久久久久久久吃药 | 免费av观看网址 | 欧美午夜精品久久久久免费视 | 欧美成人精品欧美一级私黄 | 在线中文字幕网站 | 成人av无码一区二区三区 | 欧美色999 | 狠狠爱av| 美女裸片 | 日韩欧美操 | 四虎永久免费 | 国产午夜精品久久久久 | 亚洲天天av |