关注
//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
相关推荐
02-05 14:54
山东大学 Java 点赞 评论 收藏
分享
03-03 17:35
门头沟学院 后端工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 三月的小目标 #
25932次浏览 477人参与
# 27届求职交流 #
14725次浏览 288人参与
# 神州信息求职进展汇总 #
4378次浏览 73人参与
# 26届求职交流 #
7441次浏览 158人参与
# 交出你的校招焚诀 #
18905次浏览 304人参与
# HR问:你期望的薪资是多少?如何回答 #
79750次浏览 672人参与
# 面试___岗的必刷题单 #
20858次浏览 386人参与
# 面试中,你被问过哪些奇葩问题? #
88976次浏览 850人参与
# 哪些公司开暑期实习了? #
33618次浏览 277人参与
# 小米求职进展汇总 #
1028562次浏览 6518人参与
# 实习生至暗时刻 #
24246次浏览 476人参与
# 硬件人的简历怎么写 #
330592次浏览 3093人参与
# 实习想申请秋招offer,能不能argue薪资 #
226456次浏览 1214人参与
# 找AI工作应该卷什么? #
7813次浏览 115人参与
# 快手求职进展汇总 #
737367次浏览 7114人参与
# 你觉得mentor喜欢什么样的实习生 #
51574次浏览 1008人参与
# 字节开奖 #
132225次浏览 611人参与
# 运营面经 #
160754次浏览 1349人参与
# 米哈游求职进展汇总 #
591097次浏览 3031人参与
# 春招开局,你有保底offer吗? #
36598次浏览 286人参与
# AI面试问题分享 #
19281次浏览 365人参与
