算法竞赛入门经典:第五章 基础题目选解 5.12多少块土地
来源:互联网 发布:淘宝网买手机壳 编辑:程序博客网 时间:2024/05/16 10:16
/*多少块土地:你有一块椭圆的地。你可以在边界上选n个点,并两两连接得到一个n*(n-1)/2条线段。它们最多能把土地分成多少个部分?输入:4输出:8关键:注意是求分得多少块面积欧拉公式:v-e+r = 2,r = 2+e-v - 1(这是椭圆外面的无穷大土地,易漏)=2+n*(n-1)/2-n-1=1+n*(n-3)/2V=顶点数(线段端点数+交点数)=n+n/4(0~n-2) i*(n-2-i)E=边数(n段圆弧+线段被切成的段数)=n+n/2(0~n-2) i*(n-2-i)+1R=面数(土地块数+椭圆外无穷大的面)假设对角线左边i个顶点,右边n-2-i个顶点,则左右两边两两搭配后在对角线上形成了i*(n-2-i)个交点(因为形成的i*(n-2-i)条边被中间那条线截成了这么多顶点得到了i*(n-2-i)+1条线段。每个交点被重复计算4次,而每条线段被重复计算2次土地=E-V+1E=n段圆弧+切成段=n+n/2(0~n-2) i*(n-2-i)+1V=端点+交点=n+n/4(0~n-2) i*(n-2-i)*/#include <stdio.h>#include <stdlib.h>int land(int n){float V = n;float E = n;for(int i = 0; i <= n-2;i++)//确保每个顶点从左边有0个顶点到有n-2个顶点,每个顶点为什么重复计算4次?{V += (n*i*(n-2-i))/4.0;//这里累加必须用浮点数,如果用整数除的话,最后的结果不对E += (n*(i*(n-2-i) + 1))/2.0;}int iLand = E - V + 1;printf("%d\n",iLand);return iLand;}int main(int argc,char* argv[]){int n;while(EOF != scanf("%d",&n)){land(n);}system("pause");return 0;}
0 0
- 算法竞赛入门经典:第五章 基础题目选解 5.12多少块土地
- 《算法竞赛入门经典》 第五章 基础题目选解
- 算法竞赛入门经典 5.4.4多少块土地
- 算法竞赛入门经典:第五章 基础题目选解 5.1WERTYU
- 算法竞赛入门经典:第五章 基础题目选解 5.2 Tex
- 算法竞赛入门经典:第五章 基础题目选解 5.3 周期串
- 算法竞赛入门经典:第五章 基础题目选解 5.4 小学生算术
- 算法竞赛入门经典:第五章 基础题目选解 5.5 高精度乘法
- 算法竞赛入门经典:第五章 基础题目选解 5.6 数组模拟高精度乘法
- 算法竞赛入门经典:第五章 基础题目选解 5.7 6174问题
- 算法竞赛入门经典:第五章 基础题目选解 5.8 字母重排
- 算法竞赛入门经典:第五章 基础题目选解 5.9 Cantor数
- 算法竞赛入门经典:第五章 基础题目选解 5.10 因子和阶乘
- 算法竞赛入门经典:第五章 基础题目选解 5.11果园里的树
- 【py交易】算法竞赛入门经典5.4.4 多少块土地 python
- 算法竞赛入门第五章(竞赛题目选讲)解析:
- 【索引】算法竞赛入门经典-第5章 基础题目选解
- 算法竞赛入门经典 第五章 字符串
- 20150814 JavaScript深入浅出下
- C++11新特性之std::bind与std::function
- hdoj.4404 Worms【计算几何+圆与多边形相交面积】 2015/08/17
- 浮点与定点的转换
- 对 zebra 的一点理解 thread+socket+read部分 (备忘)
- 算法竞赛入门经典:第五章 基础题目选解 5.12多少块土地
- 杭电1596find the safest road
- Curling 2.0(POJ--3009
- 从下载MODIS数据到几何纠正
- [BLE--Link Layer]设备蓝牙地址
- php:图像处理---立体饼状图
- C++11新特性之自动类型判断以及匿名函数
- 算法竞赛入门经典:第六章 数据结构基础 6.1卡片游戏
- Android四大组件之Activity