站外题球查错
  • 板块灌水区
  • 楼主littlesnake
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/6/6 17:13
  • 上次更新2024/6/6 20:06:43
查看原帖
站外题球查错
574745
littlesnake楼主2024/6/6 17:13

某工厂生产一批棍状零件,每个零件都有一定的长度(LiL_i)和重量(WiW_i)。

现在为了加工需要,要将它们分成若干组,使每一组的零件都能排成一个长度和重量都不下降(若 i<ji<j,则 Li<=Lj,Wi<=WjLi<=Lj,Wi<=Wj)的序列。请问至少要分成几组?

输入描述

第一行为一个整数 N(N≤1000)N(N \le 1000),表示零件的个数。

第二行有 NN 对正整数,每对正整数表示这些零件的长度和重量,长度和重量均不超过 1000010000。

输出描述

仅一行,即最少分成的组数。

用例输入 1

5
8 4 3 8 2 3 9 7 3 5

用例输出 1

2

这是我的样例过了但是题目爆零的代码:

# include <bits/stdc++.h>
# define int long long

using namespace std;

int n; 

signed main() {
	
    cin >> n;
    vector< pair <int, int> > p(n);
    for (int i = 0; i < n; i ++) cin >> p[i].first >> p[i].second;
    sort (p.begin(), p.end());
    int cnt = 1;
    for (int i = 1; i < n; i++) {
        if (p[i].first >= p[i-1].first && p[i].second >= p[i-1].second) continue;
        else cnt ++;
    } cout << cnt;
    return 0;
    
}

2024/6/6 17:13
加载中...