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

时间:2024-11-07 17:40:13

题目知识点

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

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

C++ 代码

import ;

import ;

import ;

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();

Set set=new HashSet<>();

int n=();

int p=();

int h=();

int m=();

height[1]=h;

for(int i=0;i

{

int a=();

int b=();

if(a>b)

{

int t=a;

a=b;

b=t;

}

String ts=""+a+b;

if(!(ts))

{

(ts);

height[a+1]--;

height[b]++;

}

}

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

{

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

(height[i]);

}

();

}

}