首页 > 其他分享 >AcWing 蓝桥杯 3994. 阿坤老师的独特瓷器 (非常经典俄罗斯套娃问题

AcWing 蓝桥杯 3994. 阿坤老师的独特瓷器 (非常经典俄罗斯套娃问题

时间:2023-11-26 14:44:22浏览次数:26  
标签:PII 套娃 Scanner int 蓝桥 maxH 阿坤 public

package 蓝桥杯;

import java.util.Arrays;
import java.util.Scanner;

public class lanqiao3994 {

    /**
     * 思路 :
     *      固定套路了感觉, 先按直径从大到小排, 然后直径相同的再按高度从小到大排
     *      然后从前往后遍历的时候就可以在一定存在更大d的前提下, 判断我前面是否有更大的h (在我前面最大的h用maxH记录) 即可 (其中d相同h必须按照从小到大, 因为前面d相同的h比我大了没用, 所以应该最后再更新maxH)
     *      整体下来时间复杂度是 O(n log n)
     *      想不出来这个就打暴力 O(n * n)
     *
     * */
    private static class PII implements Comparable {
        int d, h;
        public PII(int d, int h) {
            this.d = d;
            this.h = h;
        }

        @Override
        public int compareTo(Object o) {
            PII t = (PII) o;
            if (t.d != this.d) return t.d - this.d;
            return this.h - t.h;
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        PII[] pi = new PII[n + 10];

        for (int i = 1; i <= n; i ++ ) {
            int x = sc.nextInt(), y = sc.nextInt();
            pi[i] = new PII(x, y);
        }

        Arrays.sort(pi, 1, 1 + n);


        int ans = 0;
        int maxH = 0;
        for (int i = 1; i <= n; i ++ ) {
            if (maxH <= pi[i].h) {
                maxH = pi[i].h;
                ans ++ ;
            }
        }

        System.out.println(ans);
    }
}

标签:PII,套娃,Scanner,int,蓝桥,maxH,阿坤,public
From: https://www.cnblogs.com/llihaotian666/p/17857193.html

相关文章

  • 7-2 队列应用(蓝桥杯)
    importjava.util.LinkedList;importjava.util.Queue;importjava.util.Scanner; publicclassMain{    publicstaticvoidmain(String[]args){        Scannersc=newScanner(System.in);        Queue<String>vip=newLinkedList<>();......
  • 蓝桥杯 不高兴的津津
    #include<bits/stdc++.h>using namespace std;int main(){  int n[7],m[7],sum=0;  for(int i=0;i<7;++i)  {    cin >> n[i] >> m[i];    if(n[i]+m[i]>8)    {      sum++;      cout << i+1;      break;   ......
  • P8755 [蓝桥杯 2021 省 AB2] 负载均衡
    原题链接我曾经写题时有个疑惑,那就是会不会算力恢复之后大于最大算力?其实不会,把消耗的算力想象成占领,恢复算力想象成撤离,不管怎么恢复,领地都是那个领地。#include<bits/stdc++.h>usingnamespacestd;intpower[200005]={0};structunit{intwhen,who,recover;//......
  • 蓝桥杯 特别数的和
    #include <bits/stdc++.h>using namespace std;int main(){  int n,a,j,sum=0;  cin >> n;  for(int i=1;i<=n;++i)  {    a=i;    while(a)    {      j=a%10;      if(j==2 || j==0 || j==1 || j==9)      {......
  • P8613 [蓝桥杯 2014 省 B] 小朋友排队
    因为相邻两个数字交换,每次只能减少一个逆序对数量,所以这道题最终的交换次数就等于原序列当中逆序对的数量。但是因为每个数字的交换代价会随着交换次数而增加,所以虽然我们知道Σ数字交换次数=逆序对数量,我们也不能按照传统的逆序对数量统计方式直接计算,这样子会导致我们只知道......
  • P8611 [蓝桥杯 2014 省 AB] 蚂蚁感冒
    这道题采用贪心,两只蚂蚁相互传染后再同时掉头走,相当于穿过了对方,若无其事地走,并不会影响最后感冒的传播结果。#include<iostream>#include<algorithm>#include<cmath>#include<vector>#include<queue>usingnamespacestd;constintN=55;intn,x0,st;vector......
  • 第十四届蓝桥杯省赛 C++B组 ---- 景区导游
    第十四届蓝桥杯省赛C++B组----景区导游LCA原题连接​ lca同时得到按原来路径走的总时间​ 最后输出时处理跳过某个点的时间​ 预处理用bfs或dfs都可以importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.util.Arrays;importjava.......
  • 蓝桥杯第三周算法竞赛D题&&E题
    发现更多计算机知识,欢迎访问Cr不是铬的个人网站D迷宫逃脱拿到题目一眼应该就能看出是可以用动态规划来解决。但是怎么定义dp呢?这个题增加难度的点就在当所在位置与下一个要去的位置互质的时候,会消耗一把钥匙。当没有钥匙的时候就不能移动了。想到这里,我们可以定义一个三维的d......
  • 蓝桥杯之模拟与枚举day1
    Question1卡片(C/C++A组第一题)这个是一道简单的模拟枚举题目,只要把对应每次的i的各个位都提取出来,然后对应的卡片数目减去1即可。属于打卡题目。注意for循环的特殊使用即可#include<iostream>usingnamespacestd;boolsolve(inta[],intn){//模拟枚举while(n!=0)......
  • 【每日例题】 蓝桥杯 c++ 冶炼金属
    冶炼金属题目小蓝有一个神奇的炉子用于将普通金属О冶炼成为一种特殊金属X。这个炉子有一个称作转换率的属性V,V是一个正整数,这意味着消耗V个普通金属О恰好可以冶炼出一个特殊金属X,当普通金属О的数目不足V时,无法继续冶炼。现在给出了Ⅳ条冶炼记录,每条记录中包含两个整数A和B,这......