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

【题意】

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

【题解】

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

【代码】

  1. import java.io.IOException;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.HashSet;
  5. import java.util.LinkedList;
  6. import java.util.Scanner;
  7. import java.util.Set;
  8. import java.util.TreeSet;
  9. import java.util.Vector;
  10. public class Main {
  11. static int n,m;
  12. static ArrayList<Integer> g[];
  13. static boolean tag[];
  14. static TreeSet<Integer> myset;;
  15. public static void main(String[] args) throws IOException{
  16. // TODO Auto-generated method stub
  17. Scanner in = new Scanner(System.in);
  18. n = in.nextInt();m = in.nextInt();
  19. g = new ArrayList[n+10];
  20. tag = new boolean[n+10];
  21. myset = new TreeSet();
  22. for (int i = 1;i <= n;i++) g[i] = new ArrayList<>();
  23. for (int i = 0;i < m;i++) {
  24. int x,y;
  25. x = in.nextInt();y = in.nextInt();
  26. g[x].add(y);g[y].add(x);
  27. }
  28. myset.add(1);
  29. for (int i = 1;i <= n;i++) {
  30. int tag1 = myset.first();
  31. myset.remove(tag1);
  32. System.out.print(tag1+" ");
  33. tag[tag1] = true;
  34. for (int j = 0;j < (int)g[tag1].size();j++) {
  35. int y = g[tag1].get(j);
  36. if (tag[y]==false) {
  37. myset.add(y);
  38. }
  39. }
  40. }
  41. }
  42. }

【Codeforces 1106D】Lunar New Year and a Wander的更多相关文章

  1. 【Codeforces 1106E】Lunar New Year and Red Envelopes

    [链接] 我是链接,点我呀:) [题意] 给你k个红包,每个红包可以在si..ti的时间范围内拿走. 抢完红包之后你得到wi元,然后你需要在di+1时刻才能继续抢红包 时间是线性的从1..n 然后某个 ...

  2. 【Codeforces 1106C】Lunar New Year and Number Division

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 看了下样例解释就懂了... 每次选择最大最小的两个组合 然后加起来.. [代码] import java.io.IOException; im ...

  3. 【Codeforces 1106B】Lunar New Year and Food Ordering

    [链接] 我是链接,点我呀:) [题意] 给你n个菜以及每个人需要的菜以及数量 如果某个人无法满足它对菜的需求的话 就用价格比较低的菜来填充它的要求. (如果价格低的菜不够了,那么就直接输出0) 否则 ...

  4. 【Codeforces 1106E】 Lunar New Year and Red Envelopes

    Codeforces 1106 E 题意:有\(k\)个红包,第\(i\)个红包可以在\(s_i\)到\(t_i\)的时间内抢,同时获得\(w_i\)的钱,但是抢完以后一直到\(d_i\)都不可以继续 ...

  5. 【codeforces 415D】Mashmokh and ACM(普通dp)

    [codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...

  6. 【codeforces 707E】Garlands

    [题目链接]:http://codeforces.com/contest/707/problem/E [题意] 给你一个n*m的方阵; 里面有k个联通块; 这k个联通块,每个连通块里面都是灯; 给你q ...

  7. 【codeforces 707C】Pythagorean Triples

    [题目链接]:http://codeforces.com/contest/707/problem/C [题意] 给你一个数字n; 问你这个数字是不是某个三角形的一条边; 如果是让你输出另外两条边的大小 ...

  8. 【codeforces 709D】Recover the String

    [题目链接]:http://codeforces.com/problemset/problem/709/D [题意] 给你一个序列; 给出01子列和10子列和00子列以及11子列的个数; 然后让你输出 ...

  9. 【codeforces 709B】Checkpoints

    [题目链接]:http://codeforces.com/contest/709/problem/B [题意] 让你从起点开始走过n-1个点(至少n-1个) 问你最少走多远; [题解] 肯定不多走啊; ...

随机推荐

  1. 【POJ 3714】 Raid

    [题目链接] http://poj.org/problem?id=3714 [算法] 分治求平面最近点对 [代码] #include <algorithm> #include <bi ...

  2. MSP430:AD10

    使用的MSP430G2553,为AD10,正常有8路输出,P1.0-P1.7为A0-A7 有七个寄存器, 参考电压可以是VCC或者内部参考电压1.5V或者2.5V 参考时钟可以是内部ADC10OSC ...

  3. PCB WebAPI 接口测试工具与接口文档生成

    我们自己写WebAPI或调用对方系统提供的WebAPI时,测试WebAPI接口工具用哪些工具呢. 这里将3种WebAPI常用到的工具使用说明.主要是讲对第3种WebApiTestClientWebAp ...

  4. cookie和seesion区别

    cookie 和session 的区别详解 这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie ...

  5. AndroidManifest.xml详解

    一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它位于整个项目的根目录,描述了package中暴露的组件(activiti ...

  6. Python安装distribute包

    从官网https://pypi.python.org/pypi/distribute/0.6.49#downloads上下载distribute包,解压后进入解压文件的目录下,使用 python se ...

  7. 【Leetcode】474. Ones and Zeroes

    Today, Leet weekly contest was hold on time. However, i was late about 15 minutes for checking out o ...

  8. mysql远程服务器访问数据库

    创建一个MySQL用户,并设置可以远程访问 grant usage on *.* to 'fred'@'localhost' identified by 'fred';//创建用户fred密码ferd ...

  9. [ POI 2017 ] Podzielno

    \(\\\) \(Description\) \(B\)进制数,每个数字\(i(i\in [0,B-1])\)有\(A_i\)个.用这些数字组成一个最大的\(B\)进制数\(X\)(不能有前导零,不需 ...

  10. android shape stroke只绘制一边或者某几边

    <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android=" ...