【t004】切割矩阵
来源:互联网 发布:自动卸载软件 编辑:程序博客网 时间:2024/06/16 08:35
Time Limit: 1 second
Memory Limit: 50 MB
【问题描述】
给你一个矩阵,其边长均为整数。你想把矩阵切割成总数最少的正方形,其边长也为整数。切割工作由一台切割机器完成,它能沿平行于矩形任一边的方向,从一边开始一直切割到另一边。对得到的矩形再分别进行切割。
【输入】
共1行;输入文件中包含两个正整数,代表矩形的边长,每边长均在1—100之间。
【输出】
包含1行,输出文件包含一行,显示出你的程序得到的最理想的正方形数目。
【输入样例】
5 6
【输出样例1】
5
【题目链接】:http://noi.qz5z.com/viewtask.asp?id=t004
【题意】
【题解】
/* 设f[i][j]表示长为i,宽为j的时候分割成的最小正方形个数; 记忆化搜索; 在搜的时候强制限制一下x>y //时间复杂度感觉应该是O(n^3)的吧。 dfs(int x,int y) { if (x==y) return 1; if (x==1||y==1) return max(x,y); //竖切 rep1(i,1,x-1) { int temp = dfs(i,y)+dfs(x-i,y); if (temp<f[x][y]) f[x][y] = temp; } //横切 rep1(i,1,y-1) { int temp = dfs(x,i)+dfs(x,y-i); if (temp < f[x][y]) f[x][y] = temp; } return f[x][y]; }*/
【完整代码】
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define rei(x) scanf("%d",&x)#define rep1(i,x,y) for (int i = x;i <= y;i++)const int N = 110;int n, m;int f[N][N];int dfs(int x, int y){ if (f[x][y] < 0x3f3f3f3f) return f[x][y]; if (x == y) return 1; if (x == 1 || y == 1) return max(x, y); //竖切 rep1(i, 1, x - 1) { int temp = dfs(max(i,y),min(i,y)) + dfs(max(x-i,y),min(x - i, y)); if (temp<f[x][y]) f[x][y] = temp; } rep1(i, 1, y - 1) { int temp = dfs(max(x,i),min(x, i)) + dfs(max(x,y-i),min(x, y - i)); if (temp < f[x][y]) f[x][y] = temp; } return f[x][y];}int main(){ //freopen("D:\\rush.txt", "r", stdin); //freopen("D:\\rush_out.txt", "w", stdout); rei(n), rei(m); memset(f, 0x3f3f3f3f, sizeof f); if (n < m) swap(n, m); printf("%d\n", dfs(n, m)); return 0;}
0 0
- 【t004】切割矩阵
- poj 3695 矩阵切割
- hdu 3127(矩阵切割)
- 【DP~最大子矩阵】石材切割
- USACO Section 3.1 Shaping Regions - 矩阵切割..
- HDU 3127 WHUgirls(矩阵切割)
- Numpy学习(1):高维数组(矩阵)的切割问题
- 线段切割&&矩形切割
- 终于实现了字符叠加,视频切割,视频放大缩小,视频矩阵切换的verilog代码了
- Matlab 1.矩阵的切割再把得到的矩阵按顺序拼接排列(1维数据按规律转为2维数据方便深度学习使用)
- 文件切割
- 字符串切割
- 字符串切割
- 对象切割
- 切割文本文件
- 切割汉字
- 切割图片
- 日志切割
- ue4-资源加载和实例化类
- 文章标题
- 《图解HTTP》读书笔记02
- intellij idea注册码问题
- easyui combobox模糊查询
- 【t004】切割矩阵
- 2。Python的安装
- Java编码规范
- 为什么css绝对定位是必须让父divrelative?
- 【python】"no encoding declared"error in python
- java中StringBuilder类型的详细用法
- Redis与Memcached的区别
- 计算机视觉会议
- CentOS6.5安装mysql5.7.9tar包