(贪心)折线分割平面
来源:互联网 发布:spark教程python版本 编辑:程序博客网 时间:2024/05/17 07:03
我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。
212
2这道题一开始没有思路,看了其他的博客,用贪心策略
今天这道贪心题分为以下几个步骤,
1.首先我们想一下直线的情况,
按贪心策略,要想得到最多的平面,则新加入的一条边N,要与之前的N-1条边都相交产生两两相交的交点(没有任意三条相交于一点)。
则第N条直线最多就有N-1个交点,然后由于每增加N个点,增加N+1个平面
则n条直线最多将平面分割成1+1+2+...+n=1+n*(n+1)/2 部分
2.然后我们看每增加两条相互平行的直线。
当第N次添加时,前面已经有2N-2条直线了,所以第N次添加时,第2N-1条直线和第2N条直线都各能增加2*N-1平面,所以一共增加了4N-2个平面。
然后计算一下
sum=1-2*n+4(1+2+...+n)=2*n*(n+1)-2n+1=2*n*n+1;
3.最后我们看每次让新增加的变为折线
变为折线后,每次增加,都少产生一个平面,
然后就是总共少产生了N个平面。
故结果变为2*n*n-n+1
#include<cstdio>#include<iostream>using namespace std;int main(){ int n; long long a; cin>>n; while(n--) { cin>>a; printf("%lld\n",2*a*a-a+1); }}
0 0
- (贪心)折线分割平面
- 2050 折线分割平面
- HDU2050折线分割平面
- 折线分割平面问题
- 折线分割平面
- HDOJ2050 折线分割平面
- hdu2050 折线分割平面
- 折线分割平面
- 折线分割平面
- 1023折线分割平面
- 折线分割平面
- 折线分割平面
- HDU2050 折线分割平面
- 折线分割平面 2050
- hdoj2050 折线分割平面
- 2050 折线分割平面
- 折线分割平面
- 折线分割平面
- caffe group参数
- common.php
- JavaScript中return返回函数的问题
- css实现div的水平和垂直居中
- nyoj1277 Decimal integer conversion (河南省acm第九届省赛)
- (贪心)折线分割平面
- docker
- SQL中定义主键的方法
- WEBRTC视频网络传输到解码输出
- 122. Best Time to Buy and Sell Stock II的C++解法
- AndroidStudio下设置自动注释作者和一些预设信息
- jsp--对象感知监听器
- c#——web service异构系统调用
- shell alias 别名