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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

牛客 - Sixth Sense(贪心+二分)

發布時間:2024/4/11 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 牛客 - Sixth Sense(贪心+二分) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接:點擊查看

題目大意:給出兩個長度為 n 的數列記為 a 和 b,現在 a 的數列固定不動,問如何對數列 b 進行排列,可以使得:

  • b[ i ] > a[ i ] (嚴格大于)的位置盡可能多
  • 在滿足上述要求的前提下,b 的排列字典序最大
  • 題目分析:如果不考慮第二個約束的話,那就是一個非常簡單的貪心問題了,貪心策略如下:因為最終需要的是 a 中的每個元素和 b 中每個元素一一對應的一個結果,所以只需要考慮其相對位置,將兩個數組分別排序,然后用雙指針一個去枚舉 a 中的元素,另一個貪心從 b 中尋找元素與其匹配即可

    如果再考慮上第二個約束該如何去做呢,因為 n 只有 5e3 的級別,可以考慮正向遍歷一遍每個元素去確定 ans[ i ] 的值,此時不難想到一個 n^3 的做法了:

  • 首先求出不受約束 2 限制的答案,記為 res
  • 第一層枚舉 i ,表示當前正在確定 ans[ i ] 的值
  • 第二層枚舉 j ,表示第 i 個位置放置 b 中的第 j 個元素?,即 ans[ i ] = b[ j ]
  • 最后一層循環去檢查第 ans[ i ] = b[ j ] 時的答案,最后從貢獻為 res 的 b[ j ] 中選出最大的 b[ j ] 放在 ans[ i ] 即可
  • 考慮優化時間復雜度,第一層枚舉的 i 無法優化,第三層檢查的循環也不好優化,所以突破點就在第二層枚舉的 j,我們先暫時擱置一下

    到這里可能會有疑惑了,因為最開始說的,貪心策略去求解答案的話,是需要進行排序的,所以上述算法的時間復雜度不應該是 n^3*logn 的嘛,其實并不需要每次都排序,只需要初始時額外維護一個遞增的數組 aa 和數組 bb,每次操作完位置 i 后將 a[ i ] 和 b[ j ] 中相應的元素刪除掉即可,時間復雜度不過也才 O( n ) ,這樣就將每次貪心求解答案的時間控制在了 O( n )

    繼續討論如何優化掉第二層的 j,假設第一層枚舉到了 i,此時 a 數組中對應的元素是 a[ i ] ,將 bb 數組(有序)中的元素分成兩部分:

  • 小于等于 a[ i ] 的
  • 大于 a[ i ] 的
  • 不難看出兩個部分中的 bb 元素分別都是具有單調性的,具體指的是,對于情況一來說,如果 bb[ i ] 放在這里合適,那么 bb[ i + 1 ] 放在這里也是合適的,對于情況二來說,如果 bb[ i ] 放在這里合適,那么 bb[ i - 1 ] 放在這里也是合適的,如此就可以將枚舉的時間復雜度優化成二分了,最后總的時間復雜度為O( n^2logn )

    代碼:
    ?

    //#pragma GCC optimize(2) //#pragma GCC optimize("Ofast","inline","-ffast-math") //#pragma GCC target("avx,sse2,sse3,sse4,mmx") #include<iostream> #include<cstdio> #include<string> #include<ctime> #include<cmath> #include<cstring> #include<algorithm> #include<stack> #include<climits> #include<queue> #include<map> #include<set> #include<sstream> #include<cassert> #include<bitset> #include<list> #include<unordered_map> using namespace std;typedef long long LL;typedef unsigned long long ull;const int inf=0x3f3f3f3f;const int N=5e3+100;int a[N],b[N],n;vector<int>bb,aa;int cal(int ban1,int ban2)//去掉aa[ban1]和bb[ban2]后的結果 {int ans=0;int i=0,j=0;while(i<aa.size()&&j<bb.size()){if(i==ban1){i++;continue;//檢查一下是否越界 }if(j==ban2){j++;continue;//同上 }if(aa[i]<bb[j]){ans++;i++;}j++;}return ans; }int main() { #ifndef ONLINE_JUDGE // freopen("data.in.txt","r",stdin); // freopen("data.out.txt","w",stdout); #endif // ios::sync_with_stdio(false);scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",a+i);aa.push_back(a[i]);}for(int i=1;i<=n;i++){scanf("%d",b+i);bb.push_back(b[i]);}sort(aa.begin(),aa.end());sort(bb.begin(),bb.end());int ans=cal(-1,-1);for(int i=1;i<=n;i++){int pos1=-1;//定位,aa[pos1]=a[i]for(int j=0;j<aa.size();j++)if(aa[j]==a[i])pos1=j;int l=upper_bound(bb.begin(),bb.end(),a[i])-bb.begin(),r=bb.size()-1,mark=-1;while(l<=r){int mid=l+r>>1;if(cal(pos1,mid)==ans-1){mark=mid;l=mid+1;}elser=mid-1;}if(mark==-1){int l=0,r=upper_bound(bb.begin(),bb.end(),a[i])-bb.begin()-1;while(l<=r){int mid=l+r>>1;if(cal(pos1,mid)==ans){mark=mid;l=mid+1;}elser=mid-1;}}printf("%d ",bb[mark]);ans-=(bb[mark]>aa[pos1]);aa.erase(aa.begin()+pos1);bb.erase(bb.begin()+mark);}return 0; }

    ?

    總結

    以上是生活随笔為你收集整理的牛客 - Sixth Sense(贪心+二分)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 国产精品久久综合 | 孕妇丨91丨九色 | 欧美在线xxx | 久久久亚洲一区二区三区 | 在线观看一区视频 | 欧美日韩一区二区三区国产精品成人 | 久久精品免费一区二区 | 中文日韩字幕 | 噜噜视频| 久久久久国产精品人妻 | 蜜桃视频在线入口www | 在线观看污污网站 | 好爽…又高潮了毛片免费看 | 国产精品自拍网站 | 欧美人妻日韩精品 | 天天鲁 | 欧美精品亚洲一区 | 日韩大胆视频 | 国产精品第三页 | 国产亚洲精品久久久久丝瓜 | 精品欧美一区二区久久久久 | 伊人手机在线视频 | 亚洲在线不卡 | 久久精品色妇熟妇丰满人妻 | 久久久久人 | 成人免费一区 | 337p粉嫩色噜噜噜大肥臀 | 欧美福利在线 | 国产一区二区三区麻豆 | 视频一区二区三区精品 | 69堂精品| 凹凸精品一区二区三区 | 中文字幕第一页在线视频 | av撸撸在线 | 亚洲AV无码成人精品区麻豆 | 人人看人人澡 | 国产麻豆午夜三级精品 | 香蕉成人网 | 精品久久久久久久久久久久久久久 | 欧美精品首页 | 亚洲精品国偷拍自产在线观看蜜桃 | 午夜影院在线播放 | 在线免费黄色 | 小色瓷导航 | 网友自拍一区 | 美女喷液视频 | 99精品欧美一区二区三区综合在线 | 国产一区二区视频网站 | 成人在线视频一区二区 | 三级色网| 日韩久久久久久久 | 性综艺节目av在线播放 | 国产美女无遮挡永久免费观看 | 伊人av综合 | 免费看黄色一级大片 | 国产噜噜噜噜久久久久久久久 | 午夜久久影院 | 蜜乳av一区二区三区 | 国产一区导航 | 有码一区二区 | 少妇无码一区二区三区 | 少妇精品久久久一区二区三区 | 黑人干亚洲女 | 爽妇网国产精品 | 欧美黄色视屏 | 在线视频天堂 | 美女四肢被绑在床扒衣 | 成人在线欧美 | 天天干狠狠爱 | 在线成人播放 | 国产黑丝91 | www.黄色. | 日本中文字幕在线免费观看 | 日韩一级中文字幕 | 青青草福利 | 黑人粗进入欧美aaaaa | 男女一级片| 国产在线视频99 | 午夜精品欧美 | 国产成人啪精品午夜在线观看 | 一卡二卡三卡四卡 | 毛片av在线播放 | 香蕉视频免费网站 | 91欧美激情一区二区三区 | 伊人久久中文 | 88国产精品 | 在线观看亚洲a | 嫦娥性艳史bd | 免费成人毛片 | 亚洲视频国产视频 | 黄色的网站在线观看 | 一级特黄a大片免费 | 中文字幕一区电影 | 国精品一区二区三区 | 美女亚洲一区 | 北岛玲在线 | 亚洲欧美在线免费观看 | 制服丝袜在线一区 | 成人少妇影院yyyy |