标签: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