题目:http://acm.hdu.edu.cn/showproblem.php?pid=1418

思路:一看题目,明显是要求我们找规律,于是我就在草稿纸上画了很多个图像,还是没有找到规律,于是我就在网上看了些大佬 的代码,发现他们用了欧拉公式,what 什么是欧拉公式,~~~~~~~~~~~~~~~~~

Google了哈,看了哈百度百科的解释,一下是我看懂的部分,看上去很高大上,实际很实用。

欧拉公式

在任何一个规则球面地图上,用 R记区域个 数 ,V记顶点个数 ,E记边界个数 ,则 R+ V- E= 2,这就是欧拉公式。

 区域+顶点-边界=2

柯西的证明

第一个欧拉公式的严格证明,由20岁的柯西给出,大致如下:

 
 
从多面体去掉一面,通过把去掉的面的边互相拉远,把所有剩下的面变成点和曲线的平面网络。不失一般性,可以假设变形的边继续保持为直线段。正常的面不再是正常的多边形即使开始的时候它们是正常的。但是,点,边和面的个数保持不变,和给定多面体的一样(移去的面对应网络的外部。)
重复一系列可以简化网络却不改变其欧拉数(也是欧拉示性数)

  

的额外变换

若有一个多边形面有3条边以上,我们划一个对角线。这增加一条边和一个面。继续增加边直到所有面都是三角形。
  1. 除掉只有一条边和外部相邻的三角形。这把边和面的个数各减一而保持顶点数不变。
  2. (逐个)除去所有和网络外部共享两条边的三角形。这会减少一个顶点、两条边和一个面。
重复使用第1步和第2步直到只剩一个三角形。对于一个三角形

  

(把外部数在内)

  

  

。所以

  

//在每次进行1 2步骤时,都是符合公式 。//

推理证明

设想这个多面体是先有一个面,然后将其他各面一个接一个地添装上去的.因为一共有F个面,因此要添(F-1)个面.
考察第Ⅰ个面,设它是n边形,有n个顶点,n条边,这时E=V,即棱数等于顶点数.
添上第Ⅱ个面后,因为一条棱与原来的棱重合,而且有两个顶点和第Ⅰ个面的两个顶点重合,所以增加的棱数比增加的顶点数多1,因此,这时E=V+1.
以后每增添一个面,总是增加的棱数比增加的顶点数多1,例如
增添两个面后,有关系E=V+2;
增添三个面后,有关系E=V+3;
……
增添(F-2)个面后,有关系E=V+ (F-2).
最后增添一个面后,就成为多面体,这时棱数和顶点数都没有增加.因此,关系式仍为E=V+ (F-2).即
F+V=E+2.
这个公式叫做欧拉公式.它表明2这个数是简单多面体表面在连续变形下不变的数。

Code:
但是要注意的是,当区域只有一个时,表明这些顶点没有相连,又要满足没有都至少有两个曲线的要求,要单独算,例如n=4,n=1,如图

#include <cstdio>
#include <algorithm> int main()
{
long long n,m;
while(scanf("%lld%lld",&n,&m),n+m)
{
if(m==)
{
printf("%lld\n",n+);
}
else
{
printf("%lld\n",n+m-);
}
}
return ;
}

实际上 ,觉得题目有问题,当n=6 ,m=3时 欧拉公式就是7,我还可能画出6.

后来,我觉得,题目应该多个要求,那就是:一个个图形不能用多个图形来划分区域。

 

1418 抱歉 ACM 欧拉公式的更多相关文章

  1. HDU 1418 抱歉 (欧拉公式)

    [题目链接]:pid=1418">click here~~ [题目大意]: 假设平面上有n个点,而且每一个点至少有2条曲线段和它相连,就是说,每条曲线都是封闭的.同一时候,我们规定: ...

  2. HDOJ 1418 抱歉(欧拉公式)

    Problem Description 非常抱歉,本来兴冲冲地搞一场练习赛,由于我准备不足,出现很多数据的错误,现在这里换一个简单的题目: 前几天在网上查找ACM资料的时候,看到一个中学的奥数题目,就 ...

  3. 『ACM C++』HDU杭电OJ | 1418 - 抱歉 (拓扑学:多面体欧拉定理引申)

    呕,大一下学期的第一周结束啦,一周过的挺快也挺多出乎意料的事情的~ 随之而来各种各样的任务也来了,嘛毕竟是大学嘛,有点上进心的人多多少少都会接到不少任务的,忙也正常啦~端正心态 开心面对就好啦~ 今天 ...

  4. HDU——1418抱歉(平面欧拉公式)

    抱歉 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  5. hdu 1418(抱歉)(欧拉公式,定点数,棱数,面数的关系)(水题)

    抱歉 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  6. SCNU ACM 2016新生赛决赛 解题报告

    新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...

  7. online judge(ACM) 的设计与分析 (有c#demo)

    ACM.OJ,算法在线判题系统. 帮朋友完成毕业设计而写的,软件环境windows系统,语言是C# winform(因为我不熟悉asp.net,现在暂用winform写的demo). 看了下其他相关论 ...

  8. 杭电ACM分类

    杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...

  9. HDU ACM 1050 Moving Tables

    Problem Description The famous ACM (Advanced Computer Maker) Company has rented a floor of a buildin ...

随机推荐

  1. 第一周学习总结-Java

    2018年7月15日 暑假第一周,我从网上找了一些讲Java的视频,学到了一些Java的基础,同时也弥补了一些之前学c/c++的知识漏洞.例如,了解到了原码反码补码和按位取反运算符(~)的运算原理. ...

  2. WebStorm中常用的快捷键及使用技巧

    ------------------------------------- 近期整理了如下个人觉得比较常用的快捷键,也请前辈给予补充.多多指教. --------------------------- ...

  3. Python老男孩

    1.可以自己编写模块,但注意:如果想要调用该模块,需要将该模块放到site-packages目录下,或将该模块放在执行程序的路径下. 2.pyc文件是什么? 集合: set 集合可以去重:做交集.并集 ...

  4. Vue 添加外部的时间插件不触发v-model事件更改数据

    使用的jquery日期插件 最终问题是 在选择完成日期后并未激活 oninput事件,所以也没有激活v-model 去改变date 解决思路: 去插件js文件中,在赋值给dom的时候添加模拟输入事件便 ...

  5. django linux环境部署

    一.操作环境: 1操作系统:Ctrip-CentOS-7.1-x86_64-R3 Python版本:2.7.5 Django版本: Django 1.8.19 (LTS) 二.部署流程 pip ins ...

  6. 字符转ASCII码

    char k = '成'; int str = (int)k; Console.WriteLine(str); 结果25104就是‘成’对应的ASCII值

  7. 利用 Windows API Code Pack 修改音乐的 ID3 信息

    朋友由于抠门 SD 卡买小了,结果音乐太多放不下,又不舍得再买新卡,不得已决定重新转码,把音乐码率压低一点,牺牲点音质来换空间(用某些人的话说,反正不是搞音乐的,听不出差别)… 结果千千静听(百度音乐 ...

  8. nodejs 2017

    1.  nodejs函数 path()  nodejs全局变量 __dirname a.js // 运行 node a.js var path = require('path'); console.l ...

  9. Delphi Setlength 内存释放总结

    https://blog.csdn.net/lotusyangjun/article/details/8203521 一.在Setlength 被调用次数不多时,可直接使用以下代码进行释放var aa ...

  10. 多线程外排序解决大数据排序问题2(最小堆并行k路归并)

    转自:AIfred 事实证明外排序的效率主要依赖于磁盘,归并阶段采用K路归并可以显著减少IO量,最小堆并行k路归并,效率倍增. 二路归并的思路会导致非常多冗余的磁盘访问,两组两组合并确定的是当前的相对 ...