3 条题解
-
0
import java.util.ArrayList; import java.util.Scanner; public class Main {
public static void main(String[] args) { Scanner sc = new Scanner(System.in); //思路 int n=sc.nextInt(); int ans=0; int[]cnt=new int[200001];//计数 boolean[]vis=new boolean[200001];//判断是否读入,去重 ArrayList<Integer>list=new ArrayList<>();//存数 for(int i=0;i<n;i++) { int m=sc.nextInt(); cnt[m]++;//
if(!list.contains(m))list.add(m);太慢->visif(!vis[m]) { list.add(m);//没读入的话 vis[m]=true; } } for(int i=0;i<list.size();i++) {//一个数跟每个数配对// for(int j=0;j<list.size();j++) { // int a=list.get(i),b=list.get(j); // if(cnt[a]>=b&&cnt[b]>=a)ans++; // }超时
int a=list.get(i);//先枚举a for(int b=1;b<=cnt[a];b++) {//再枚举<=cnt[a]的b if(vis[b]&&cnt[b]>=a)ans++;//看是否有数,和满足另一个条件 } } System.out.println(ans); }}
信息
- ID
- 598
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 167
- 已通过
- 43
- 上传者