多重循环~平面分割

题目描述:

输入

第一行输入一个整数m(m<=100),表示有m组测试数据。接下来的m行,每行有两个整数n和p,分别表示平面内的直线数和相交于一点直线数。

 

输出

每组测试数据输出一个正整数,表示最多分割成的区域数目。每个测试数据的输出占一行。

 1 #include<stdio.h>
 2 int main(){
 3     int n,p,m;          //m:有几组测试数据,n:平面内有几条线,p:几条线交于一个顶点
 4     int ans=0;
 5     scanf("%d",&m);
 6     int i,j;
 7     for(i=1;i<=m;i++){
 8         scanf("%d %d",&n,&p);
 9         ans=2*p;
10         for(j=p+1;j<=n;j++)
11             ans=ans+j;
12         printf("%d\n",ans);
13     }
14     return 0;
15 } 

solution:

1 不交于一点的其他线要得到最大的分割图,需要穿过每一条相交于一点的其他线

  n  p

  3  2  >7 ~ 2*2+3(穿过2跳线增加3个平面) 

  12  5  >73 ~ 5*2+6(穿过5条线增加6个平面)+7(穿过6跳线增加7个平面)+8+9+10+11+12 

3

  两个循环:第一个循环:循环组数

          第二个循环:循环每一组里每增加一条边而相应增加的平面分割数

 
posted on 2022-10-24 16:38  罗小罗佳油  阅读(24)  评论(0编辑  收藏  举报