小明有一个花园,花园里面一共有m朵花,对于每一朵花,都是不一样的,小明用1~m中的一个整数表示每一朵花。
他很喜欢去看这些花,有一天他看了n次,并将n次他看花的种类是什么按照时间顺序记录下来。
记录用a[i]表示,表示第i次他看了a[i]这朵花。
小红很好奇,她有Q个问题,问[l,r]的时间内,小明一共看了多少朵不同的花儿,小明因为在忙着欣赏他的花儿,所以想请你帮他回答这些问题。
小明有一个花园,花园里面一共有m朵花,对于每一朵花,都是不一样的,小明用1~m中的一个整数表示每一朵花。
他很喜欢去看这些花,有一天他看了n次,并将n次他看花的种类是什么按照时间顺序记录下来。
记录用a[i]表示,表示第i次他看了a[i]这朵花。
小红很好奇,她有Q个问题,问[l,r]的时间内,小明一共看了多少朵不同的花儿,小明因为在忙着欣赏他的花儿,所以想请你帮他回答这些问题。
输入两个数n,m;(1<=n<=2000,1<=m<=100);分别表示n次看花,m表示一共有m朵花儿。
接下来输入n个数a[1]~a[n],a[i]表示第i次,小明看的花的种类;
输入一个数Q(1<=Q<=1000000);表示小红的问题数量。
输入Q行 每行两个数l,r(1<=l<=r<=n);表示小红想知道在第l次到第r次,小明一共看了多少不同的花儿。
一共Q行
每一行输出一个数 表示小明在[l,r]的时间内看了多少种花。
5 3 1 2 3 2 2 3 1 4 2 4 1 5
3 2 3
import java.util.*; public class Main{ public static void main(String[] args){ Scanner scn=new Scanner(System.in); while(scn.hasNextInt()){ int n=scn.nextInt(); int m=scn.nextInt(); byte[] a=new byte[n]; for(int i=0;i<n;i++) a[i]=scn.nextByte(); int q=scn.nextInt(); for(int i=0;i<q;i++){ int l=scn.nextInt(); int r=scn.nextInt(); int t=0; byte[] c=new byte[m]; for(int j=l-1;j<r;j++) c[a[j]-1]=1; for(byte cell:c) if(cell==1) t++; System.out.println(t); } break; } } }
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int []A = new int [n]; int []B = new int [m]; for(int i=0;i<n;i++){ A[i] = sc.nextInt(); } int Q = sc.nextInt(); int [][]a = new int [Q][2]; for(int i=0;i<Q;i++){ a[i][0] = sc.nextInt(); a[i][1] = sc.nextInt(); } for(int i=0;i<Q;i++){ int t=0; for(int j=a[i][0]-1;j<=a[i][1]-1;j++){ int dd = A[j]; if(B[dd-1]!=i+1){ B[dd-1]=i+1; t++; } } System.out.println(t); } } }