0
点赞
收藏
分享

微信扫一扫

【qduoj - 夏季学期创新题】矩形剖分(递归,dp)

题干:

描述

 

对一个给定的矩形,将其划分成尽可能少的正方形,输出正方形的最少个数。例如,如下图所示的情况,则输入为3和4,输出为4。【qduoj - 夏季学期创新题】矩形剖分(递归,dp)_c代码

输入

 

输入两个整数中间用空格分开。

输出

 

输出最少分割成的正方形的个数。

输入样例 1 


3 4

输出样例 1


4

解题报告:

   简单递归。  这题如果是t组数据的话,这个f函数就可以写记忆化了。。。但是这个题就没必要了,因为状态转移之间没有重叠子问题,所以不需要dp。

AC代码:

#include<bits/stdc++.h>

using namespace std;
int f(int x,int y) {
if(x == y) return 1;
if(x > y) {
return f(x-y,y) + 1;
}
else return f(y-x,x) + 1;
}
int main()
{
int n,m;
while(cin>>n>>m) {
cout << f(n,m)<<endl;
}

return 0;
}

 


举报

相关推荐

0 条评论