zoukankan      html  css  js  c++  java
  • 平面分割

    【题目描述】
    同一平面内有n(n≤500)条直线,已知其中p(p≥2)条直线相交于同一点,则这n条直线最多能将平面分割成多少个不同的区域?


    【输入格式】
    两个整数n(n≤500)和p(2≤p≤n)。


    【输出格式】
    一个正整数,代表最多分割成的区域数目。


    【输入样例】Surface.in
    12 5


    【输出样例】Surface.out
    73

    【分析】

    1.当n==p时,即在p==x时n有最小值为x,且将平面分割为2x份;

    2.当n的值增加i个单位时,若要使分割出的平面数最多,则新增的直线需与之前的每一条直线相交;

    3.新增的直线与之前的每一条直线相交时,平面数与n==p时相比增加p+1+i。

    【代码实现】

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     int n,p,m[1001];
     6     scanf("%d %d",&n,&p);
     7     m[p]=2*p;
     8     for(int i=p+1;i<=n;i++)
     9     {
    10         m[i]=m[i-1]+i;
    11     }
    12     printf("%d",m[n]);
    13     return 0;
    14 }
  • 相关阅读:
    等宽布局和flex
    antd按需加载
    linux-redis cluster集群(redis5.x)
    linux-mysql-主从同步
    mysql-行转列
    Spring Bean 作用域
    ArrayList、LinkedList区别(jdk8)
    java类及实例初始化顺序
    线程池-结构
    GIT基础
  • 原文地址:https://www.cnblogs.com/TheZealous/p/14291749.html
Copyright © 2011-2022 走看看