HDU ACM 1290 献给杭电五十周年校庆的礼物
2015-12-28 10:09
483 查看
解析:
1、n条直线把平面切割成的区域数为: f(n)=f(n-1)+n=n(n+1)/2+1;
2、把空间切割为最多区域数的时候,第n个平面与前(n-1)个平面相交。且无三面共线,因此该平面与前(n-1)个平面有(n-1)条交线。
这些交线把第n个平面切割为f(n-1)个区域。于是这个平面将原有空间一分为二,添加了f(n-1)个空间,得递推公式:g(n)=g(n-1)+f(n-1)=(n^3+5n)/6+1。
3、这类问题一般都有一个固定的公式,二维的通常是f(x)=a*x^2+b*x+c,三维的通常是f(x)=a*x^3+b*x^2+c*x+d, 用带定系数法求出各个系数就OK了。
1、n条直线把平面切割成的区域数为: f(n)=f(n-1)+n=n(n+1)/2+1;
2、把空间切割为最多区域数的时候,第n个平面与前(n-1)个平面相交。且无三面共线,因此该平面与前(n-1)个平面有(n-1)条交线。
这些交线把第n个平面切割为f(n-1)个区域。于是这个平面将原有空间一分为二,添加了f(n-1)个空间,得递推公式:g(n)=g(n-1)+f(n-1)=(n^3+5n)/6+1。
3、这类问题一般都有一个固定的公式,二维的通常是f(x)=a*x^2+b*x+c,三维的通常是f(x)=a*x^3+b*x^2+c*x+d, 用带定系数法求出各个系数就OK了。
#include<iostream> using namespace std; int main() { int n; while(cin>>n) { cout<<(n*n*n+5*n)/6+1<<endl; } return 0; }
相关文章推荐
- 全球四大国际反垃圾邮件组织介绍
- 通过HTTP协议上传文件
- 让Label竖着显示
- httpclient发送post请求
- OpenCV参考手册之CvCapture结构体
- Redis学习笔记(一) 初识 Redis
- Android之NDK开发
- 偏执却管用的10条Java编程技巧
- 原生JavaScript实现瀑布流布局
- 如何为PHP贡献代码
- 程序员也要写文章:好处不止多赚钱
- 写于2015年末的总结
- 如何为PHP贡献代码
- libcurl
- 浏览器 HTTP 协议缓存机制详解
- 明年工资新规定,8种人将被淘汰,你在其中么?
- 每日一vim(14)tab标签页
- InitialContext和lookup
- 关于JavaScript的九个思维导图
- Github上找好东西的方法