zoukankan      html  css  js  c++  java
  • 【Codeforces 1106D】Lunar New Year and a Wander

    【链接】 我是链接,点我呀:)
    【题意】

    让你遍历n个节点,访问过的节点不操作。 如果是没有访问过的点,那就把它加到序列的末尾. 问你形成的最小字典序的序列是多少。

    【题解】

    显然每次找最小的标号 用一个集合维护当前能够到达的最小标号 一开始集合里面只有1 然后每次取出来最小的节点然后到达那个节点。 然后把和那个点相邻的节点全都加入到集合中(如果没有访问过) 已经访问过的点是可以重复走的。 所以可以一层一层地往外扩展"可以到达的节点集合" 重复上述步骤n次即可 有点像最短路的蓝白点思想,

    【代码】

    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.HashSet;
    import java.util.LinkedList;
    import java.util.Scanner;
    import java.util.Set;
    import java.util.TreeSet;
    import java.util.Vector;
    
    
    public class Main {
    		
    	static int n,m;
    	static ArrayList<Integer> g[];
    	static boolean tag[];
    	static TreeSet<Integer> myset;;
    	
    	public static void main(String[] args) throws IOException{
    		// TODO Auto-generated method stub
    		Scanner in = new Scanner(System.in);
    		n = in.nextInt();m = in.nextInt();
    		g = new ArrayList[n+10];
    		tag = new boolean[n+10];
    		myset = new TreeSet();
    		
    		for (int i = 1;i <= n;i++) g[i] = new ArrayList<>();
    		
    		for (int i = 0;i < m;i++) {
    			int x,y;
    			x = in.nextInt();y = in.nextInt();
    			g[x].add(y);g[y].add(x);
    		}
    		
    		myset.add(1);
    		for (int i = 1;i <= n;i++) {
    			int tag1 = myset.first();
    			myset.remove(tag1);
    			System.out.print(tag1+" ");
    			tag[tag1] = true;
    			for (int j = 0;j < (int)g[tag1].size();j++) {
    				int y = g[tag1].get(j);
    				if (tag[y]==false) {
    					myset.add(y);
    				}
    			}
    		}
    		
    		
    	}
    
    }
    
  • 相关阅读:
    Java 8 Lambda 表达式
    OSGi 系列(十二)之 Http Service
    OSGi 系列(十三)之 Configuration Admin Service
    OSGi 系列(十四)之 Event Admin Service
    OSGi 系列(十六)之 JDBC Service
    OSGi 系列(十)之 Blueprint
    OSGi 系列(七)之服务的监听、跟踪、声明等
    OSGi 系列(六)之服务的使用
    OSGi 系列(三)之 bundle 事件监听
    OSGi 系列(三)之 bundle 详解
  • 原文地址:https://www.cnblogs.com/AWCXV/p/10351542.html
Copyright © 2011-2022 走看看