关注
//Dalao厉害,第四题完全没想到用二分; //我考试时写的第三题O(n),想法可能简单点 #include <iostream> #include <vector> #include <algorithm> #include <utility> using namespace std; int main() { int n; cin >> n; for (int i = 0; i < n; ++i) { int people; cin >> people; vector<int> point(people, 0); vector<long long> pres(people, 1); vector<pair<int, int> > mark(people, make_pair(0, 0)); for (int j = 0; j < people; ++j) cin >> point[j]; if (people == 0) { cout << 0 << endl; continue; } if (people == 1) { cout << 1 << endl; continue; } if (people == 2) { if (point[0] == point[1]) cout << 2 << endl; else cout << 3 << endl; continue; } for (int j = 0; j < people; ++j) { int left = j - 1 < 0 ? people - 1 : j - 1; int right = (j + 1) % people; if (point[j] > point[left]) mark[j].first = 1; if (point[j] > point[right]) mark[j].second = 1; } for (int j = 0; j < people; ++j) { if (mark[j].first == 0 && mark[j].second == 0) { int left = j - 1 < 0 ? people - 1 : j - 1; while (mark[left].second == 1) { pres[left] = max(pres[left], pres[(left+1)%people] + 1); left = left - 1 < 0 ? people - 1 : left - 1; } int right= (j + 1) % people; while (mark[right].first == 1) { pres[right] = max(pres[right], pres[right-1<0?people-1:right-1] + 1); right = (right + 1) % people; } } } long long result = 0; for (int j = 0; j < people; ++j) result += pres[j]; cout << result << endl; } return 0; }
查看原帖
点赞 1
相关推荐

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 帮我看看,领导说这话什么意思? #
15724次浏览 87人参与
# 牛友的志愿填报指南 #
33562次浏览 180人参与
# 快手技术岗信息交流阵地 #
133次浏览 0人参与
# 你的mentor是什么样的人? #
12447次浏览 97人参与
# 毕业租房也有小确幸 #
140262次浏览 4491人参与
# 怎么给家人解释你的工作? #
7613次浏览 57人参与
# 得物app工作体验 #
27167次浏览 61人参与
# 租房前辈的忠告 #
259160次浏览 7114人参与
# 国企还是互联网,你怎么选? #
167627次浏览 1191人参与
# 求职中的尴尬瞬间 #
1672次浏览 25人参与
# 小红书求职进展汇总 #
120494次浏览 952人参与
# 薪资爆料 #
199957次浏览 1512人参与
# 校招泡的最久的公司是哪家? #
10241次浏览 66人参与
# 求职低谷期你是怎么度过的 #
10197次浏览 199人参与
# 26届秋招公司红黑榜 #
24258次浏览 88人参与
# 从哪些方向判断这个offer值不值得去? #
12887次浏览 158人参与
# 度小满求职进展汇总 #
11911次浏览 64人参与
# 你觉得mentor喜欢什么样的实习生 #
14841次浏览 392人参与
# 牛客树洞,我想对你说 #
4299次浏览 63人参与
# 还记得你第一次面试吗? #
340030次浏览 3876人参与
# 机械人的秋招小目标 #
22599次浏览 217人参与