当前位置:   article > 正文

JAVA101本土精选,AcWing 101. 最高的牛JAVA

javahdtv101

题目知识点

1、本题使用到了差分,因为要求的有牛可能的最大值,所以每头牛初始化为h,a,b之间要互相看得见,所以对中间的值都-1

2、是要对数据进行判重,yxc这边用到了set< pair< int,int> >来存储两个值并判重,但java里面就只能是转化成set里存储对象在判断,这样是不好判断的。我这边转化成set< String>,String=”“+a+b,这样String存储的值是不会重复的。

C++ 代码

import java.util.HashSet;

import java.util.Scanner;

import java.util.Set;

public class Main

{

private static int N=10010;

private static int[] height=new int[N];

public static void main(String[] args)

{

Scanner scan=new Scanner(System.in);

Set set=new HashSet<>();

int n=scan.nextInt();

int p=scan.nextInt();

int h=scan.nextInt();

int m=scan.nextInt();

height[1]=h;

for(int i=0;i

{

int a=scan.nextInt();

int b=scan.nextInt();

if(a>b)

{

int t=a;

a=b;

b=t;

}

String ts=""+a+b;

if(!set.contains(ts))

{

set.add(ts);

height[a+1]--;

height[b]++;

}

}

for(int i=1;i<=n;i++)

{

height[i]+=height[i-1];

System.out.println(height[i]);

}

scan.close();

}

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/186536
推荐阅读
相关标签
  

闽ICP备14008679号