51Nod 1967 路径定向

首先说一下这道题的思路真的是非常巧妙。 但是,出题人脑子进shi了么,难道一定要写法和你一样才能过???? 反正卡的特别紧,我到最后还有一个测试点一直超时。 时间限制是 1200s ,明显就是故意的。这种故意卡常在51Nod里巨特么多。搞不懂他们在想什么。 不觉得会在以后碰到类似的题目会故意卡我,因为很多人都是 1000 ~ 1200 的时间卡过的。 题意: 给你一个有向图,让你任意改动边的方向,使得出入度相同的点数最多。 并输出方案。 思路: 一眼看成上下界网络流。实际上这道题就是用上下界网络流改出来的,但就别想了,正解都卡着过,网络流能过? 建图方式和无汇源上下界可行流一致,跑一遍最大流即可。 下面是另一种思路。 有入度相同的特征的图还有一种,就是欧拉图,对于度数为奇数的点(以下简称奇点,反之偶点),必然不可能存在一个方案使得其出入点相同。这是必然的,那么反过来对于偶点,如果欧拉路径存在也就必然存在一个方案使得其出入度相同。 直接将所有奇点,顺序两两相连,跑一遍欧拉路径即可。 这里补充两点 1. 奇点数量必然为偶数。因为每一条遍贡献的…

HDU 6071 Lazy Running

第一次刷到HDU第一名,趁现在没人比我高,截图来一发!!!! 对于这道题,我只想说一个字 妙!!!! 题意: 给你四个点,(1,2),(2,3),(3,4),(4,1)之间都有一条无向路径,让你从 2 号点出发,最后回到2号点,同时使得走过的距离大于等于 k ,并且 最小。 k很大,最大达到 1e18 ,四条路的范围不大于 3e4 。 思路: 这道题真的是太妙了!!! 说一下我比赛前后的思路,这里我称 从 起点 2 回到 2的回路为 E 回路。 先说一下我比赛的思路: 一开始我的思路是这样的,首先不考虑单纯的往返,那么E回路就有7种情况。 那么我考虑复杂度的话最多的就是4点成环且只有4条边的情况,对于这条已有的E回路,我们可以在任意一条路径走来回走,使得路径长度增大。 那么我们就可以将问题转化成为…

BEST THEOREM ( 附 HDU 6064

昨晚多校的以为是数论的图论题,我看许学姐也是忙得不可开交肯定是没去看过的了。 看了题解发现matrix tree,以为可写,然后就跟Yasola搞这题搞了一个晚上…… 这道题用到的是求欧拉回路的 BEST THEOREM 定理,感觉国内资料相当少,不管google还是baidu都搜不到什么中文介绍,唯一搜到的是一片SGU的题目…… 这里稍微简单介绍一下…… BEST THEOREM 简介 BEST THEOREM是解决有向欧拉回路路径数量的定理,其前提条件是能构成欧拉回路,也就是每个点必须入度等于出度,(这个是要自己额外判断的……) 其表达式为 $ ec\left( G\right) = t_{w}\left( G\right) \times \prod _{v\in V}\left( \deg \left( v\right) -1\right) ! $ 其中,( t_{w}\left( G\right)…

Fleury算法计算欧拉图路径

6.11集训队选拔赛有道欧拉图的题,没带模板就尝试去写没写出来。因为在acm里欧拉图的题可以说是少之又少,就算是我现在想要去复习一编,然而连题目都找不到几个。就算有欧拉图的题目,也只是考察他的性质(欧拉图的判定啊什么的) 阅读之前请读者自备图论相关常识 Fleury算法是一种解决欧拉图的常见算法,它的核心思想在于我在进欧拉路径的时候,尽量去走非桥边。其实这是很显然的,因为当你在走过了一个桥边,原图将被分为两个子图,如果之前还有边未走完,那么我将无法回到原子图上,也就无法形成欧拉路径了。 优先走非桥边,这是一个非常必要的前提条件,而事实证明,这也是一个充分条件。 以下是我整理的个人模板 #include #include #include #include #include using namespace std; const int maxn = 110; int stk[maxn], ans[maxn], degree[maxn]; int to

HDU 5883 2016 ICPC青岛网络赛

坑爹啊!!!!!!!当时这道题想了我好久好久 想到各种歪的地方 到最后没有一个地方是想对的 都是想多的 日 怎么说呢 一眼看出是欧拉图问题 但是一开始没想起 异或运算的规则 傻傻的把欧拉路径的算法给敲了一直超时 //顺便稍微写一下异或运算的性质好了 1. 两个相同的数异或得 0 2.0与任意一个数异或 则这个数不变 3. 多个数异或与顺序无关 回归正题 关于欧拉图的性质 简单回顾一下 欧拉通路 所有结点连通并且只有两个结点的 度 为奇数 欧拉回路 所有结点连通并且所有结点的 度 为偶数 另外 欧拉通路的起点和终点固定 欧拉回路的起点(也是终点)任意 这样就可以写了 比完之后关注了一下这道题的博客 感觉他们还是有些逻辑漏洞 然而他们还是A了 AC code #include #include #include #include #include using namespace std;