题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=21363 [思路] 欧拉定理:V+F-E=2.则F=E-V+2. 其中V E F分别代表平面图的顶点数,边数和面数. 涉及到判断线段是否有交点,直线求交点以及判断点是否在直线上的函数.注意求直线交点之前需要判断是否有交点,交点还需要去重. [代码] #include<cmath> #include<cstdio> #include<cstring…
UVALive - 3263 That Nice Euler Circuit (几何) ACM 题目地址:  UVALive - 3263 That Nice Euler Circuit 题意:  给出一个点,问连起来后的图形把平面分为几个区域. 分析:  欧拉定理有:设平面图的顶点数.边数.面数分别V,E,F则V+F-E=2  大白的题目,做起来还是非常有技巧的. 代码: /* * Author: illuz <iilluzen[at]gmail.com> * File: LA3263.cp…
That Nice Euler Circuit [题目链接]That Nice Euler Circuit [题目类型]几何 &题解: 蓝书P260 要用欧拉定理:V+F=E+2 V是顶点数;F是分成了多少区域,也就是本题的答案;E是有多少条边,比如2条线段相交,就有4条边,而不是2条. 还有几点注意: 1.dcmp()没有返回0 调了半天(模板照着敲都能错 0.0!) 2.V[]点没有去重 wa了1次(这个去重还是很难想的,去重之后还要证出原来的方法是正确的) 还有他这种算E(边数)的想法很好…
题意:平面上有一个包含n个端点的一笔画,第n个端点总是和第一个端点重合,因此团史一条闭合曲线.组成一笔画的线段可以相交,但是不会部分重叠.求这些线段将平面分成多少部分(包括封闭区域和无限大区域). 分析:若是直接找出所有区域,或非常麻烦,而且容易出错.但用欧拉定理可以将问题进行转化,使解法变容易. 欧拉定理:设平面图的顶点数.边数和面数分别为V,E,F,则V+F-E=2. 这样,只需求出顶点数V和边数E,就可以求出F=E+2-V. 设平面图的结点由两部分组成,即原来的结点和新增的结点.由于可能出…
题目链接 lrj训练指南 P260 //==================================================================== // 此题只需要考虑线段规范相交的情况 // 点在线段上不需要考虑端点情况 ; Point p[maxn],q[maxn*maxn]; int main() { ; &&n) { ;i<n;i++) p[i].read(),q[i]=p[i]; n--; int E=n,V=n; ;i<n;i++) ;…
That Nice Euler Circuit Little Joey invented a scrabble machine that he called Euler, after the great mathematician. In his primary school Joey heard about the nice story of how Euler started the study about graphs. The problem in that story was - le…
题目传送门 题意:一笔画,问该图形将平面分成多少个区域 分析:训练指南P260,欧拉定理:平面图定点数V,边数E,面数F,则V + F - E =  2.那么找出新增的点和边就可以了.用到了判断线段相交,求交点,判断点在线上 /************************************************ * Author :Running_Time * Created Time :2015/10/22 星期四 09:10:09 * File Name :LA_3263.cpp…
That Nice Euler Circuit Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Description   Little Joey invented a scrabble machine that he called Euler, after the great mathematician. In his primary school Joey heard about the nice…
题目链接:poj2284 That Nice Euler Circuit 欧拉公式:如果G是一个阶为n,边数为m且含有r个区域的连通平面图,则有恒等式:n-m+r=2. 欧拉公式的推广: 对于具有k(k≥2)个连通分支的平面图G,有:n-m+r=k+1. 题意:给出连通平面图的各顶点,求这个欧拉回路将平面分成多少区域. 题解:根据平面图的欧拉定理“n-m+r=2”来求解区域数r. 顶点个数n:两两线段求交点,每个交点都是图中的顶点. 边数m:在求交点时判断每个交点落在第几条边上,如果一个交点落在…
                                                      That Nice Euler Circuit Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 1977   Accepted: 626 Description Little Joey invented a scrabble machine that he called Euler, after the great…
That Nice Euler Circuit Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 1975   Accepted: 624 Description Little Joey invented a scrabble machine that he called Euler, after the great mathematician. In his primary school Joey heard about…
题意: 给出一个图,有的边是有向边,有的是无向边.试找出一条欧拉回路. 分析: 按照往常的思维,遇到混合图,我们一般会把无向边拆成两条方向相反的有向边. 但是在这里却行不通了,因为拆成两条有向边的话,就表示这个边能“在两个相反方向各经过一次”. 而题意是这个边只能经过一次. 假设图中存在欧拉回路,则所有点的出度out(i) 等于 入度in(i) 不妨这样,先将所有的无向边任意定向,对于out(u) > in(u)的点,可以将已经定向的无向边u->v反向为v->u,这样out(u) - i…
题意:给一个图,图中有部分是向边,部分是无向边,要求判断是否存在欧拉回路,若存在,输出路径. 分析:欧拉回路的定义是,从某个点出发,每条边经过一次之后恰好回到出发点. 无向边同样只能走一次,只是不限制方向而已,那么这个情况下就不能拆边.不妨先按照所给的start和end的顺序,初步定下该无向边的顺序(若不当,一会再改).那么有个问题,我们需要先判断其是否存在欧拉回路先. 混合图不满足欧拉回路因素有:(1)一个点的度(无论有无向)是奇数的,那么其肯定不能满足出边数等于入边数.(2)有向边的出入度过…
题意:给你一个图,有N个点,M条边,这M条边有的是单向的,有的是双向的. 问你能否找出一条欧拉回路,使得每条边都只经过一次! 分析: 下面转自别人的题解: 把该图的无向边随便定向,然后计算每个点的入度和出度.如果有某个点出入度之差为奇数,那么肯定不存在欧拉回路.因为欧拉回路要求每点入度 = 出度,也就是总度数为偶数,存在奇数度点必不能有欧拉回路. 好了,现在每个点入度和出度之差均为偶数.那么将这个偶数除以2,得x.也就是说,对于每一个点,只要将x条边改变方向(入>出就是变入,出>入就是变出),…
Little Joey invented a scrabble machine that he called Euler, after the great mathematician. In his primary school Joey heard about the nice story of how Euler started the study about graphs. The problem in that story was - let me remind you - to dra…
就是求混合图是否存在欧拉回路 如果存在则输出一组路径 (我就说嘛 咱的代码怎么可能错.....最后的输出格式竟然w了一天 我都没发现) 解析: 对于无向边定向建边放到网络流图中add(u, v, 1); 对于有向边放到另一个图中add2(u, v); 然后就是混合边求是否有欧拉 一边dinic后 遍历每一条边 如果不是反向边 且 起点不是s 终点不是t 如果Node[i].c == 0 则 add2(Node[i].v, Node[i].u); else add2(Node[i].u, Node…
画一个顶点为偶数的封闭的二维图,当然.这个图能够自交,给出画的过程中的一些轨迹点.求出这个图把二次元分成了几部分,比如三角形把二次元分成了两部分. 这个的话,有图中顶点数+部分数-棱数=2的定律,这是核心思想.也就是所谓的欧拉定律拓扑版,好吧,事实上细致想想也是可以想出这个规律来的. 做出这题纯属意外,因为给的点的坐标全是用整数表示,为了不用考虑精度问题,一開始.我就想仅仅用这些点.就是说不再算出其他交点之类的,就把答案算出, 由于当前轨迹与之前轨迹无非三种情况:规范与不规范相交,不相交 不相交…
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1676 题意: 给出一个V个点和E条边(1≤V≤100,1≤E≤500)的混合图(即有的边是无向边,有的边是有向边),试求出它的一条欧拉回路,如果没有,输出无解信息.输入保证在忽略边的方向之后图是连通的. 分析: 很多混合图问题(例如,混合图的最短路)都可以转化为有向图问题,方法是把…
题意:求混合图的欧拉路径. 一句话总结:网络流,最主要在于建图,此题是将出度则是和流量联系在了一起,用最大流来调整边的指向. 分析: 这题的困难之处在于无向边只能用一次,相当于一个方向未定的有向边. 首先用并查集判断图的连通性,(直接计数O(1),做1395 Slim Span学到的技巧). 我们知道有向图的欧拉路径存在的充要条件是最多两个点的入度不等于出度,而且相差为1.这题要求回路,只需要所有点的入度等于出度就行了. 对于无向边,一开始可以随意确定一个方向.这样不能保证所有点的入度等于出度,…
题外话:很多混合图问题可以转化为有向图问题(将无向边拆为两条有向边) 本题不行,因为只能经过一次 这种问题能想到网络流.. 复习欧拉回路:入度==出度 和uva1380有点相似,要先给无向边定向.原图为G,定向的边单独组成另一个G’ 定向后对任意点,入度==出度,则有了回路. 否则调整原来的无向边.  (如果入度出度奇偶性不同,则无解) 出度增加(in-out/2). 注意U->V变成V->U,U出度-1,V出度+1. 就像在运送”出度”,就是网络流.(满足out>in的点能提供出度)…
题意: 平面上有n个端点的一笔画,最后一个端点与第一个端点重合,即所给图案是闭合曲线.求这些线段将平面分成多少部分. 分析: 平面图中欧拉定理:设平面的顶点数.边数和面数分别为V.E和F.则 V+F-E=2 所求结果不容易直接求出,因此我们可以转换成 F=E-V+2 枚举两条边,如果有交点则顶点数+1,并将交点记录下来 所有交点去重(去重前记得排序),如果某个交点在线段上,则边数+1 //#define LOCAL #include <cstdio> #include <cstring&…
https://vjudge.net/problem/UVALive-3263 平面上有一个n个端点的一笔画,第n个端点总是和第一个端点重合,因此图示一条闭合曲线. 组成一笔画的线段可以相交,但不会部分重叠,求这些线段将平面分为几部分 包括封闭区域和无限大区域 欧拉定理:平面图的顶点数V,边数E,面数F ,V+F-E=2 顶点数包含原来节点.新增节点,可能多线共点,所以还要去重 边数包含原来的边.新增的边, 判断新增边:枚举点.边,如果点在线段上(非端点处),边数+1 判断点在线段上且非端点:点…
欧拉定理: 简单多面体的顶点数V.棱数E及面数F间有关系有著名的欧拉公式:V-E+F=2. 设G为任意的连通的平面图,则v-e+f=2,v是G的顶点数,e是G的边数,f是G的面数.(引) 证明(?) 这题的做法就是模拟画线的过程,统计出画每一条线时与之前所有线的交点,将所有交点记录下来,将每一个顶点也记录下来.然后将点去重,得到点数.然后统计每一条线上有几个点,那么这条线就被分成了点数+1段,这样得到边数.最后根据公式算出面数. #include<cstdio> #include<cma…
http://poj.org/problem?id=2284 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1264 http://acm.hdu.edu.cn/showproblem.php?pid=1665 题目大意: 平面上有一个包含n个端点的一笔画,第n个端点总是和第一个端点重合,因此图案是一条闭合的曲线.组成一笔画…
输入n个点,然后从第一个点开始,依次链接点i->点i+1,最后回到第一点(输入中的点n),求得到的图形将平面分成了多少部分. 根据欧拉定理 v_num + f_num - e_num = 2可知,求出点数跟边数便能求出平面数. #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<fstream> #include<sst…
题链: http://poj.org/problem?id=2284 题解: 计算几何,平面图的欧拉定理 欧拉定理:设平面图的定点数为v,边数为e,面数为f,则有 v+f-e=2 即 f=e-v+2 所以$N^2$求出所以线段的交点,并去重, 然后再计算出最后共有多少边,(判断点是否在线段上,是的话则e++) 总的复杂度 $O(N^3)$ 代码: #include<cstdio> #include<cstring> #include<iostream> #include…
题意: 给你n个点第n个点保证与第0个点相交,然后求这n个点组成的图形可以把整个平面分成几个面 思路: 这里的解题关键是知道关于多面体的欧拉定理 多面体: 设v为顶点数,e为棱数,f是面数,则v-e+f=2-2pp为欧拉示性数,例如p=0 的多面体叫第零类多面体p=1 的多面体叫第一类多面体 这里满足的是零类多面体,我们只要求出该图形的 点v,边e即可. 怎么求点v呢? 两部分一部分是原来的n-1个顶点,然后是交出来的,我们只要判断线段相交求直线交点即可,然偶可能会摇头重复的交点去掉,求边的话我…
链接:id=2284">http://poj.org/problem?id=2284 题意:一个自己主动绘图的机器在纸上(无限大)绘图,笔尖从不离开纸,有n个指令,每一个指令是一个坐标,由于笔尖不离开纸,所以相邻的坐标会连有一条直线,最后画笔再回到起始点. 所以这个图是一个连通图,而且画笔走过的路径是一个欧拉回路. 如今问题来了.这个图形将平面分成了几部分. 思路:题目说明确一些就是告诉你一些几何信息问平面被分成了几部分.能够用欧拉公式来做 欧拉公式:如果图的顶点个数为n,边数为m,区域数…
描述 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=15&page=show_problem&problem=1264 给出一个一笔画的所有折点,求这个一笔画共把平面分成了几个区域(包括优先区域与无限区域). 3263 - That Nice Euler Circuit 3263That Nice Euler CircuitLittle Joey i…
Little Joey invented a scrabble machine that he called Euler, after the great mathematician. In his primary school Joey heard about the nice story of how Euler started the study about graphs. The problem in that story was - let me remind you - to dra…