Codeforces Round 967 (Div. 2)-D
1.CF-925(已更新:D-F)2.2024牛客寒假算法基础集训营33.CF-926(已更新:B-C)4.CF-927(已更新:B C E)5.CF-928(已更新:B C D E)6.2024牛客寒假算法集训营4 (已更新:B-E)7.CF EDU-162 (已更新:A-C+D的代码)8.At-abc3429.蒟蒻的补档题(长期更新)10.CF-929(已更新:B-E)11.CF-931(已更新:AB代码)12.PowerOj 2024-康复赛 (待更新)13.CF-932(已更新 A B)14.矩阵快速幂15.CF-933(已更新:B-D)16.数论分块17.CF-Edu-163(已更新:A B)18.CF-936(AB)19.AT-abc347(C-E)20.CF-938(C-E)21.CF-943(已更B-E,G1)22.CF-945(已更A,B)23.CF-956(A-D)24.CF-957(D-E)25.CF-959(C-E)
26.Codeforces Round 967 (Div. 2)-D
27.AtCoder Beginner Contest 396 (E-F)28.Codeforces Round 1008 (Div. 2) (C-D)Codeforces Round 967 (Div. 2)-D
这些天在留校集训……我之前空余时间在看模电,最近在玩黑猴……九月开学了估计也不能闲下来……但这个博客我还是会抽空更新的╰(°▽°)╯
Problem - D - Codeforces
虽然代码写得特别丑陋,但好歹是我完全想的思路——自己还de了一天bug(゜ー゜)
从上午十点开始看题到下午1点过,一直在想思路和可行的方法,期间也考虑过主席树(发现不会),最后还是用回了
朴实无华万能的双指针……然后就是debug到了今天早上才过……
分析
题中要求从给出的序列中选出一个长度最长同时在奇数位为负的情况下字典序最小的无重复元素的子序列
首先,要长度最长又没有重复元素,合法子序列一定是原序列中所有出现过的数的排列,再考虑字典序最小,容易想到要奇数位字典序尽量大、偶数位字典序尽量小,这里为什么要说"尽量"?因为要满足子序列不能乱序且选到原序列中的所有元素,为了方便思考,我们把问题简化一下,考虑如何选到长度最长的字典序最大的无重复子序列
对于
代码
void solve(){
int n;cin>>n;
vector<int>a(n+1),ans;
map<int,int>mp;
rep(i,1,n) cin>>a[i],mp[a[i]]++;
priority_queue<pair<int,int>>q,_q;
int sz=mp.size();
auto erase=[&](int idx)->void{
while(q.size()&&(-q.top().second<idx||mp[q.top().first]==0)){
q.pop();
}
while(_q.size()&&(-_q.top().second<idx||mp[-_q.top().first]==0)){
_q.pop();
}
};
int pos=1,i=1,j=1;
while(i<=n&&j<=n){
while(j<=n){
if(mp[a[j]]==0){
j++;
}
else if(mp[a[j]]==1){
q.push({a[j],-j});
_q.push({-a[j],-j});
break;
}
else{
mp[a[j]]--;
q.push({a[j],-j});
_q.push({-a[j],-j});
j++;
}
}
if(j>n) break;
int st1=-q.top().second,st2=-_q.top().second;
int mx=a[st1],mi=a[st2];
if(pos&1){
i=st1+1;
mp[mx]=0;
}
else{
i=st2+1;
mp[mi]=0;
}
pos++;
erase(i);
ans.push_back(a[i-1]);
}
cout<<ans.size()<<"\n";
for(auto i:ans) cout<<i<<" ";
cout<<"\n";
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】