题目描述
在一个平面上使用一条直线最多可以将一个平面分割成两个平面,而使用两条直线最多可将平面分割成四份,使用三条直线可将平面分割成七份……这是个经典的平面分割问题,但是too simple,作为一个可以对困难谈笑风生的人,我们现在将问题改一下,不再使用平面,而使用一个角来分割平面,一个角最多可以将平面分成两份,两个角最多可以将平面分成七份……那么n个角可以将平面分割成几个部分呢?再进一步,考虑用圆可以将平面分割成几部分呢?聪明的你肯定想得到,答案是…
输入
第一行一个正整数T(1<=T<=20)表示测试数据的数量,之后每行两个正整数n和m(1<=n,m<=1000)分别表示使用n个角和m个圆。
输出
每组数据输出两个答案s1和s2,分别表示使用n个角可将平面分割成s1份,使用m个圆可将平面分割成s2份
样例输入
2
1 1
2 3
样例输出
2 2
7 8
递推公式:2*n*n-n+1 2^n
code:
#include<cstdio>
int n,m;
int f(int a,int b)
{
int c=1;
while(b>0)
{
if(b%2==1)
c=a*c;
b=b/2;
a=a*a;
}
return c;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
int s=f(2,m);
int ss=2*n*n-n+1;
printf("%d %d\n",ss,s);
}
return 0;
}

5826

被折叠的 条评论
为什么被折叠?



