zoukankan      html  css  js  c++  java
  • SGU 101 Domino 题解

      鉴于SGU题目难度较大,AC后便给出算法并发布博文,代码则写得较满意后再补上。——icedream61


    题目简述:暂略

    AC人数:3609(2015年7月20日)

    算法:

      这题就是一笔画,最多只有7个点(0~6),每个骨牌就是一条双向边。

      要做的,就是找出一条一笔画的路径。步骤如下:

        1. 读入数据,建成图。

        2. 判断可否一笔画。一笔画条件:奇点数为0或2 + 联通分量数为1。

        3. 如果不可一笔画,则输出No solution,结束;如果可以,则找到一条路径R,并输出。

      下面给出找一笔画路径R的经典算法:

        1. 找到起点S和终点T

          如果有两个奇点,那么一个为S一个为T;

          如果没有奇点,那么随便选一个点,S和T都是它。

        2. 随便找一条S→T的路径,这就是初始的R。过程中,走过一次的边便标记为失效,今后视而不见(注意,这题可是双向边!)。

        3. 若此时图中依旧有剩余边,则在R的基础上,不断更新,直至图中没有剩余边。更新方法如下:

          (a)从R中任一点出发,走图中剩余的边,直至回到此点,这就找到了一条路径r。

          (b)把R中此点的位置,换成路径r,这就更新了R。

        4. 此时图中已没有剩余边,R即为所求一笔画路径。

      可以证明,只要有一笔画路径,这个算法必然可以找到。

  • 相关阅读:
    [Android学习笔记]Activity
    [Android学习笔记]Activity,View,Windows简介
    [Android]Eclipse的使用
    [Cocos2d-x]解决Android平台ndk-build时不自动删除外部库
    [Cocos2d-x]Android的android.mk文件通用版本
    [C++][STL]string记录
    nyoj-103-A+B Problem II
    nyoj-95-众数问题
    nyoj-187-快速查找素数
    nyoj-8-一种排序
  • 原文地址:https://www.cnblogs.com/icedream61/p/4661241.html
Copyright © 2011-2022 走看看