将楼主的代码稍微排了下版, 然后跑了几个测试样例都过了, 不清楚实际能不能 ac #include <iostream> #include <vector> using namespace std; int main() { int N, M; cin >> N >> M; vector<pair<int, int>> time(N); int s, t; for (int i = 0; i < N; i++) { cin >> s >> t; if (s >= t) t += M; time[i] = make_pair(s, t); } sort(time.begin(), time.end(), [](pair<int, int>& p1, pair<int, int>& p2) { return (p1.second == p2.second) ? p1.first > p2.first : p1.second < p2.second; }); int bound = time[0].second; int max_watch = 0; for(int i = 0; i < N; i++) { // 我们需要找的不同的起点, 绝对是在第一个遍历的 end 之前, // 如果在起点在第一个遍历的 end 之后, 岂不是丢掉了 time 中第一个元素, 肯定不是最大值 if (time[i].first >= bound) { break; } int start_time = time[i].first; int cur_time = time[i].second; int watch = 1; for (int j = i+1; j < N; j++) { if (time[j].first < cur_time) { continue; } cur_time = time[j].second; if (cur_time > start_time + M) { break; } else watch++; } max_watch = max(max_watch, watch); } cout << max_watch << endl; return 0; }
点赞 1

相关推荐

03-28 19:11
铜陵学院 C++
有礼貌的山羊追赶太阳:太典了,连笔试都没有开始就因为HC满了而结束了,而且还卡你不让你再投其他部门的。
点赞 评论 收藏
分享
大猪蹄子哥:1-谁教你这么写教育经历的……咱都这个学历了,很多公司要看本科、硕士,Gap Year的,你啪就给一个上大26届硕士,没了。 2-那堆奖学金揉成一行放最后得了,放前面显得你没技术自信,还是那句话,对于咱这个学历直接上重点,你这上半段看起来像个大专(无恶意 3-专业技能最好点出来细化方向,你熟悉的以太网是UDP还是TCP,是千兆还是万兆等等,多种信号处理……那你倒是说两个啊,后面空着干嘛,会的干嘛不讲 4-项目经历废话太多,描述不专业(怎么还有我,我们这种词),没有数据支撑(是婴儿还是巨人看不出来)。最后如果这些是真的XX项目、比赛,最好点出来,不然更显得像自学着玩的,或者说抄的(经典复现等于我做过 5-个人总结在咱这个分段没用
点赞 评论 收藏
分享
牛客网
牛客企业服务