关注
//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
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# uu们,春招你还来吗? #
13802次浏览 91人参与
# 硬件兄弟们 甩出你的华为奖状 #
117299次浏览 699人参与
# 百融云创求职进展汇总 #
263次浏览 0人参与
# 哪一瞬间让你觉得“这班不如不上” #
12732次浏览 161人参与
# 面试紧张时你会有什么表现? #
16041次浏览 131人参与
# 工作前VS工作后,你的心态变化 #
14521次浏览 164人参与
# Offer比较,你最看重什么? #
240821次浏览 1483人参与
# 2025年终总结 #
14286次浏览 224人参与
# 第一份工作能做外包吗? #
87063次浏览 583人参与
# 为了去实习,我赌上了___ #
22684次浏览 208人参与
# 总结:哪家公司最喜欢泡池子 #
155683次浏览 560人参与
# 应届生初入职场,求建议 #
279068次浏览 2839人参与
# 父母对你找工作是助力还是阻力? #
14381次浏览 207人参与
# 高薪高压 vs 低薪wlb,你怎么选? #
12869次浏览 140人参与
# 互联网公司评价 #
459270次浏览 4041人参与
# 一人推荐一个值得做的项目 #
10335次浏览 147人参与
# 十二月请对我好一点 #
26420次浏览 356人参与
# 和牛牛一起刷真题 #
118709次浏览 2085人参与
# 学历or实习经历,哪个更重要 #
202898次浏览 1076人参与
# 毕业论文进行时 #
17005次浏览 112人参与
# 25届网易互娱暑实进度 #
91923次浏览 750人参与

