码迷,mamicode.com
首页 > 其他好文 > 详细

欧拉函数

时间:2014-11-27 16:04:42      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:sp   bs   代码   nbsp   函数   需求   计算   枚举   重复   

欧拉函数是一个关于边点和面的公式

我先说下公式是什么在一一解释  V-E+F=2;

V这个V代表定点数(是所有线段的端点数加上交点数),E代表边数(是n段椭圆弧加上这些线段被切成的段数)F就是面数 是所有的面数

我们来看一道题

题意是:有一块椭圆形的徒弟,你可以在边界上选N个点,并两两相连得到(n(n-1))/2条线段,他们最多能把徒弟分成多少个部分?

样例输入:4

样例输出:8

用了上面的公式之后我们只需求出来E-V+2就能求出面数了

那么E怎么求,首先我们计算时都要枚举一条从固定点出发的所有对角线,假设对角线左边有i个点那么右面一定有n-i-2个点  把他们都连起来只有会产生n-2-i个交点和n-2-i个边 但是每个交点被重复计算了4次 每个线段被重复计算了2次 所以我们就可以得出公式

V = n + n/4*(i=0到i = n - 2的所有点数相加)

E = n + n/2*(i = 0到i = n -2的所有边相加)

思路这么明确  代码我就不写了

欧拉函数

标签:sp   bs   代码   nbsp   函数   需求   计算   枚举   重复   

原文地址:http://www.cnblogs.com/zhanyage110/p/4126404.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!