package tree;
import java.util.Scanner;
public class Week16_ST {
publicstaticvoid main(String[]args) {
Scannerscanner =new Scanner(System.in);
intsum = Integer.parseInt(scanner.nextLine());
int [][]map =newint[sum+1][sum+1];
for(int i=1;i<map.length;i++){
map[i][1] = Integer.parseInt(scanner.nextLine());
}
for(intj=2;j<map[0].length;j=j*2){
for(inti=1;i<map.length;i++){
if(i +j/2 <map.length){
map[i][j] = Math.min(map[i][j/2],map[i + j/2][j/2]);
}
else{
map[i][j] =map[i][j/2];
}
}
}
intquery = Integer.parseInt(scanner.nextLine());
for(inti=0;i<query;i++){
String question =scanner.nextLine();
intleft = Integer.parseInt(question.split(" ")[0]);
intright = Integer.parseInt(question.split(" ")[1]);
Week16_ST.search(map,left,right);
}
}
public staticvoid search(int [][]map,intleft,intright){
if(right -left + 1 == 1){
System.out.println(map[left][1]);
}
else{
intindex = 0;
intlength =right -left + 1;
while(length != 0){
length >>= 1;
index++;
}
System.out.println(Math.min(map[left][(int)Math.pow(2,index-1)],
map[right - (int)Math.pow(2,index-1) + 1][(int)Math.pow(2,index-1)]));
}
}
}
https://www.cpe.ku.ac.th/~jim/java-io.html
这个网页介绍了一种比scanner更快的读取input的方式,感兴趣的同学可以了解一下。
https://www.cpe.ku.ac.th/~jim/java-io.html
这个网页介绍了一种比scanner更快的读取input的方式,感兴趣的同学可以了解一下。