博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Codeforces 246D】Colorful Graph
阅读量:5010 次
发布时间:2019-06-12

本文共 3076 字,大约阅读时间需要 10 分钟。

【链接】

【题意】

让你找到所有和x颜色的点中,和该颜色的点颜色不同的相邻的点的个数(重复颜色算一次)
求出哪种颜色的所要求的点的数量最多.

【题解】

对于每一条边只会被查到两次。
所以按照题意暴力枚举的时间复杂度就是O(n+m)级别的
至于查重 只要对找过的点打个标记就很好处理的

【代码】

import java.io.*;import java.util.*;public class Main {        static InputReader in;    static PrintWriter out;            public static void main(String[] args) throws IOException{        //InputStream ins = new FileInputStream("E:\\rush.txt");        InputStream ins = System.in;        in = new InputReader(ins);        out = new PrintWriter(System.out);        //code start from here        new Task().solve(in, out);        out.close();    }        static int N = (int)1e5;    static class Task{                int n,m;        int c[] = new int[N+10];        ArrayList
g[] = new ArrayList[N+10]; ArrayList
col[] = new ArrayList[N+10]; int mark[] = new int[N+10]; public void solve(InputReader in,PrintWriter out) { for (int i = 1;i <= N;i++) g[i] = new ArrayList
(); for (int i = 1;i <= N;i++) col[i] = new ArrayList
(); n = in.nextInt();m = in.nextInt(); for (int i = 1;i <= n;i++) { c[i] = in.nextInt(); col[c[i]].add(i); } for (int i = 1;i <= m;i++) { int x,y; x = in.nextInt();y = in.nextInt(); g[x].add(y);g[y].add(x); } int ans = -1,idx = 0; for (int i = 1;i <= N;i++) if (!col[i].isEmpty()) { int cnt = 0; for (int J = 0;J < (int)col[i].size();J++) { int x = col[i].get(J); int len = g[x].size(); for (int j = 0;j < len;j++) { int y = g[x].get(j); if (c[y]!=c[x]) { if (mark[c[y]]!=i) { cnt++; mark[c[y]] = i; } } } } if (cnt>ans) { ans = cnt; idx = i; } } out.println(idx); } } static class InputReader{ public BufferedReader br; public StringTokenizer tokenizer; public InputReader(InputStream ins) { br = new BufferedReader(new InputStreamReader(ins)); tokenizer = null; } public String next(){ while (tokenizer==null || !tokenizer.hasMoreTokens()) { try { tokenizer = new StringTokenizer(br.readLine()); }catch(IOException e) { throw new RuntimeException(e); } } return tokenizer.nextToken(); } public int nextInt() { return Integer.parseInt(next()); } }}

转载于:https://www.cnblogs.com/AWCXV/p/10494520.html

你可能感兴趣的文章
Notepad++的ftp远程编辑功能
查看>>
数据库多对多关联表(Python&MySQL)
查看>>
[实变函数]1.2 集合的运算
查看>>
第06天
查看>>
设计模式的征途—5.原型(Prototype)模式
查看>>
iOS10 app连接不上网络的问题
查看>>
结对开发之电梯调度最终稿(徐梦迪&刘博)
查看>>
simple java mail
查看>>
信息建模
查看>>
Mybatis 数据库物理分页插件 PageHelper
查看>>
虚函数、纯虚函数详解
查看>>
z-stack中数据的发送,广播、组播、点对点
查看>>
Practial Vim 学习笔记一
查看>>
.NET中使用js实现百度搜索下拉提示效果[不是局部刷新,呜呜。。]
查看>>
ITCAST视频-Spring学习笔记(使用Spring的注解方式实现AOP入门)
查看>>
关于二维码“QR”的6大注意事项
查看>>
MySQL - 常用命令及常用查询SQL
查看>>
C# .NET MVC 接收 JSON ,POST,WCF 无缝隙切换
查看>>
android获取USB设备的名称
查看>>
JavaPersistenceWithHibernate第二版笔记-第七章-005排序的集合(@org.hibernate.annotations.SortComparator)...
查看>>