Laptop (pensamiento, orden parcial bidimensional)

Ordenador portátil

El significado del título: n elementos, cada elemento tiene dos atributos ai, bi a_i, b_iunyo,segundoyo, Pregunte cuántos elementos j, satisfacen ∃ \ existe Artículoi (i ≠ j) i ~ (i \ neq j)yo ( yo =j )使ai ≥ aj, bi ≥ bj a_i \ geq a_j, b_i \ geq b_junyounj,segundoyosegundoj

Idea: primero clasifique uno de los atributos a de grande a pequeño, luego enumere cada elemento y establezca un valor máximo mx mxm x se utiliza para almacenarbbdurante la enumeraciónEl valor máximo de b , si el elemento actual esbbb es menor quemx mxm x, años ++。

Prueba simple: en el proceso de enumeración, ai ≥ ai + 1 a_i \ geq a_ {i + 1}unyouni + 1. Entonces, mx mxm x es el valor máximo entre los primeros i elementos, sii> j, bj <mx i> j, b_j <mxyo>j bj<m x , significa que j es un artículo que cumple las condiciones.

Código de código C o d e

#include<bits/stdc++.h>
using namespace std;
struct f {
    
    
    long long a, b;
} s[100010];
bool cmp(f x, f y) {
    
    
   return x.a > y.a;
}
int main() {
    
    
    int n;
    cin >> n;
    for(int i=0; i<n; i++) {
    
    
        cin >> s[i].a >> s[i].b;
    }
    sort(s, s+n, cmp);

    int mx = s[0].b, ans = 0;
    for(int i=1; i<n; i++) {
    
    
        if(s[i].b <= mx) ans++;
        else mx = s[i].b;
    }
    cout << ans;
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/weixin_45363113/article/details/112913583
Recomendado
Clasificación