鉴于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即为所求一笔画路径。

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

SGU 101 Domino 题解的更多相关文章

  1. SGU 101 Domino (输出欧拉路径)

    101. Domino time limit per test: 0.25 sec. memory limit per test: 4096 KB Dominoes – game played wit ...

  2. sgu 101 Domino 解题报告及测试数据

    101. Domino time limit per test: 0.25 sec. memory limit per test: 4096 KB 题解: 求多米诺骨牌按照一定方式放置能否使相邻的位置 ...

  3. SGU 101.Domino( 欧拉路径 )

    求欧拉路径...直接dfs即可,时间复杂度O(N) -------------------------------------------------------------------------- ...

  4. SGU 101 Domino【欧拉路径】

    题目链接: http://acm.sgu.ru/problem.php?contest=0&problem=101 题意: N个多米诺骨牌,每个骨牌左右两侧分别有一个0~6的整数(骨牌可以旋转 ...

  5. sgu 101 domino

    题意还算简洁明了,加上有道翻译凑过着读完了题.题意大体上是 给你 n 个多米诺骨牌, 给出每个骨牌两端的数字, 只有数字相同才可以推到, 比如 2-3和3-2.你可以旋转这些多米诺骨牌, 输出一个可以 ...

  6. SGU 101.Domino (欧拉路)

    时间限制: 0.5 sec 空间限制: 4096 KB 描述 多米诺骨牌,一种用小的方的木块或其他材料,每个都被一些点在面上标记,这些木块通常被称为骨牌.每个骨牌的面都被一条线分成两个   方形,两边 ...

  7. ACM: SGU 101 Domino- 欧拉回路-并查集

    sgu 101 - Domino Time Limit:250MS     Memory Limit:4096KB     64bit IO Format:%I64d & %I64u Desc ...

  8. SGU 101

    SGU 101,郁闷,想出来算法,但是不知道是哪个地方的问题,wa在第四个test上. #include <iostream> #include <vector> #inclu ...

  9. Domino - SGU 101 (欧拉路径)

    题目大意:这是一个多米诺骨游戏,这个游戏的规则就是一个连着一个,现在给出 N 个多米诺,每个多米诺两边都有一个编号,相邻的多米诺的编号要一致,当然多米诺是可以翻转的(翻转就加‘-’,不翻转是‘+’), ...

随机推荐

  1. SQL SERVER启动时间

    select sqlserver_start_time,* from sys.dm_os_sys_info

  2. c#写入配置文件(text)

    1.获取当前时间 System.DateTime currentTime = new System.DateTime(); currentTime = System.DateTime.Now; 写入配 ...

  3. ubuntu安装完整版的vim

    apt-get remove vim-commonapt-get install vim

  4. 使用vue搭建项目(创建手脚架)

    第一步:切换到创建的目录 创建项目 vue cerate [model] 第二步:切换到创建好的项目,然后创建element vue add element 第三步:创建router vue add ...

  5. 【洛谷P2168】[NOI2015]荷马史诗

    荷马史诗 建一个k叉哈夫曼树,用堆维护一下 // luogu-judger-enable-o2 #include<iostream> #include<cstdio> #inc ...

  6. js一键勾选所有的checkbox

    //一键勾选全部的checkbox function checkAll(){ var obj = document.getElementById("all"); var arr = ...

  7. js前台加密,java后端解密

    1.前台JS <script type="text/javascript">        $(function() {                $(" ...

  8. 思维导图 XMind 8 Update 8 Pro for Mac 中文破解版

    破解包下载地址 在官网下载8版本就可以了

  9. let's encrypt部署免费泛域名证书

    环境说明 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@localhos ...

  10. SpringBoot学习(1)

    springboot的自动配置功能,主要流程如下: 1 启动的时候加载我们的主配置类,也就是我们的入口类:从而开启我们的自动配置配置功能,这个是通过@EnableAutoConfiguration注解 ...