当时自己犯了很蠢的错误,用Python写一直ac不了,所以搞了两个版本,后来发现都改好了,两个都能AC C++版本: #include <iostream> #include <cstdio> #include <vector> #include <algorithm> #define MAX(a,b) ((a) > (b) ? (a) : (b)) using namespace std; int main(){     int t, res_m, res_f;     cin >> t;     for(int i = 0; i < t; i++){         int n;         res_m = 0;         res_f = 0;         cin >> n;         vector<int> v;         for(int j = 0; j < n; j++){             int x; scanf("%d",&x);             vector<int>::iterator pos_left,pos_right;             pos_left = std::lower_bound(v.begin(), v.end(), x);             pos_right = std::upper_bound(pos_left, v.end(), x);             int lo = pos_left - v.begin();             int hi = pos_right - v.begin();             v.insert(v.begin()+hi, x);             res_f += lo + hi - j;             res_m = MAX(res_m, res_f);         }         cout << res_m << ' ' << res_f << endl;     }     return 0; } Python 版本: import bisect T = int(input()) class my_class(object):     __slots__ = ['array', 'res_m', 'res_f']     def __init__(self, lst):         array = []         res_m, res_f = 0, 0         n = len(lst)         for i, x in enumerate(lst):             pos_left = bisect.bisect_left(array, x)             pos_right = bisect.bisect_right(array, x, pos_left)             res_f += pos_left + pos_right - i             res_m = max(res_m, res_f)             array.insert(pos_right, x)         print(res_m, res_f) for _ in range(T):     n = int(input())     lst = list(map(int, input().split()))     my_class(lst)
点赞 2

相关推荐

谁赞同?谁反对?服从性测试真是让D老师看透本质了!
森林漫游记:大学就应该教行测,这才是帮助学生就业的核心课程
点赞 评论 收藏
分享
落叶随风呀:学校不好就放两栏,专业能力往前移, 政治面貌不是党员不如不写,籍贯湖南衡阳,或者湖南,浅尝辄止 基本信息排版不够美观,没有对齐 简历上花里胡哨的东西去掉 项目我不评价,因为我能力有限,且对mcu了解不足 但是这份简历掌握的水平,你可以海投试试,工作没问题但是工资应该不会高,因为搞mcu的小公司多
点赞 评论 收藏
分享
牛客网
牛客企业服务