多重循环~平面分割
题目描述:
输入
第一行输入一个整数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 不交于一点的其他线要得到最大的分割图,需要穿过每一条相交于一点的其他线
2
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
两个循环:第一个循环:循环组数
第二个循环:循环每一组里每增加一条边而相应增加的平面分割数