1 条题解
-
0Takagi-san (njnu19200437) LV 10 MOD @ 2021-11-06 18:48:41
简单模拟即可,实现方式有很多。
时间复杂度是\(O(n\log n)\)
Code:#include<bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int,int>; int main() { vector<pii> v; int n;cin>>n; for(int i=1, x;i<=n;i++) cin>>x, v.push_back(make_pair(i, x)); //vector里存放选手的编号和力量 auto operate = [](vector<pii>& v){ vector<pii> res; for(int i=0;i<v.size()-1;i+=2) if(v[i].second>=v[i+1].second) res.push_back(v[i]); else res.push_back(v[i+1]); //保留力量较大的选手 if(v.size()%2) res.push_back(v.back()); return res; }; while(v.size()>2) v = operate(v); //一直进行比赛,直到只剩两人 cout<<v[0].first<<" "<<v[1].first<<'\n'; }
- 1
信息
- ID
- 1297
- 难度
- 5
- 分类
- (无)
- 标签
- 递交数
- 163
- 已通过
- 51
- 通过率
- 31%
- 被复制
- 1
- 上传者