import java.util.Scanner;
//这题0AC??? 到底哪个边界卡住了?????
//这道题其实很简单,一个一维数组,每次特性区间个数加进去(可能区间有覆盖,这个先提交看看有没有这个实例,如果有每次使用boolean判别,当前特性在该位置是否已经加入过了即可)
//最终只需要判断个数是不是==m即可
public class Main {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int T=s.nextInt();
int counts[]=new int[T];
String[] strs=new String[T];
int index=0;
while (T-->0){
int n=s.nextInt();//奶牛个数
int m=s.nextInt();//特性个数
int orM=m;
int[] arr=new int[n];
while (orM-->0){
boolean[] isVisited=new boolean[n];
int k=s.nextInt();
while (k-->0){
int l=s.nextInt()-1;
int r=s.nextInt()-1;
l=l<0?0:l;
r=r<0?0:r;
l=l>=n?n-1:l;
r=r>=n?n-1:r;
for(int i=l;i<=r;i++){
if(isVisited[i]){
i++;
continue;
}
isVisited[i]=true;
arr[i]+=1;
}
}
}
StringBuilder sb=new StringBuilder();
//int count=0;
for (int i = 0; i < arr.length; i++) {
if(arr[i]==m){
counts[index]++;
sb.append(i+1+" ");
}
}
if(counts[index]!=0)
strs[index]=sb.substring(0,sb.length()-1);
index++;
}
for (int i = 0; i < counts.length; i++) {
System.out.println(counts[i]);
System.out.println(strs[i]);
}
}
}
/*
2
10 2
3
1 2
4 5
8 8
2
1 4
6 8
10 2
3
1 2
4 5
8 8
2
1 4
6 8
*/
我想问一下大佬,百度笔试第二题,我这道题有一点问题吗?? 第一时间就想出来这个想法,感觉一点问题都没有,怎么0AC????? 心态都没了
#笔试题型##百度#