矩阵嵌套
来源:互联网 发布:excel数据分析功能 编辑:程序博客网 时间:2024/05/21 17:02
题目描述
有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者 b<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排 成一行,使得除最后一个外,每一个矩形都可以嵌套在下一个矩形内。
输入
第一行是一个正正数N(0<N<10),表示测试数据组数,
每组测试数据的第一行是一个正正数n,表示该组测试数据中含有矩形的个数(n<=1000)
随后的n行,每行有两个数a,b(0<a,b<100),表示矩形的长和宽
输出
每组测试数据都输出一个数,表示最多符合条件的矩形数目,每组输出占一行
样例输入
1101 22 45 86 107 93 15 812 109 72 2
样例输出
5
#include <cstdio>#include <algorithm>#include <iostream>using namespace std;struct play{int a,b;}z[1001];bool ccp(play x, play y){return x.a<x.b;}int main(){int N;cin>>N;while(N--){int n;cin>>n;for(int i=0;i<n;i++){cin>>z[i].a>>z[i].b;if(z[i].b>z[i].a){int temp=z[i].a;z[i].a=z[i].b;z[i].b=temp;}}int sum=1;sort(z,z+n,ccp);play b[101];b[0]=z[0];for(int i=1;i<n;i++){if(z[i].a>b[0].a&&z[i].b>b[0].b){b[0]=z[i];sum++;}}cout<<sum<<endl;}return 0;}
动态规划做法:
#include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <algorithm> #define MAX 1001 using namespace std; struct Data { int x; int y; }data[MAX]; int ans[MAX]; bool cmp(Data a, Data b) //排序函数 { if(a.x == b.x) { return a.y < b.y; } else { return a.x < b.x; } } int main() { int t, n, i, j, max, tempx, tempy; scanf("%d", &t); while(t--) { memset(ans, 0, sizeof(ans)); scanf("%d", &n); for(i = 0; i < n; i++) { scanf("%d%d", &tempx, &tempy); if(tempx < tempy) { data[i].x = tempx; //录入时确保x为宽y为长 data[i].y = tempy; } else { data[i].x = tempy; data[i].y = tempx; } } sort(data, data+n, cmp); for(i = 0; i < n; i++) //初始化为1 { ans[i] = 1; } for(i = 1; i < n; i++) { max = 0; for(j = i-1; j >= 0; j--) //寻找最大元素小于data[i]的最长子序列 { if(data[i].x > data[j].x && data[i].y > data[j].y && ans[j] > max) { max = ans[j]; } } ans[i] = max + 1; } max = 0; for(i = 0; i < n; i++) { if(ans[i] > max) { max = ans[i]; //遍历结果数组找最长子序列(长度) } } printf("%d\n", max); } }
阅读全文
0 0
- 矩阵嵌套
- 矩阵嵌套
- DAG模型-嵌套矩阵
- nyoj16矩阵嵌套
- nyoj16矩阵嵌套
- 紫书dp 嵌套矩阵
- nyoj 16 矩阵嵌套
- 经典-动态规划-嵌套矩阵
- 嵌套矩阵+拓扑排序+循环
- 嵌套矩阵之DAG类型
- DAG 动态规划 矩阵嵌套
- NYOJ-----16---矩阵嵌套DP
- uva-437 矩阵嵌套dp
- 入门经典 例题9-2 嵌套矩阵
- NYOJ 16-矩阵嵌套:动态规划
- nyoj 16 嵌套矩阵(DAG图)
- hdu 1588 Gauss Fibonacci(函数嵌套、转换、等比矩阵求和)
- 矩阵嵌套问题(DAG上的动态规划)
- GitHub万星项目:黑客成长技术清单
- 2017.10.24总结
- FileInputStream(字节流)与fileReader(字符流) 的区别
- 人人都会的35个Jquery小技巧
- 梯度下降回归
- 矩阵嵌套
- C++学习疑惑解答笔记
- 安卓智能地图开发与实施二十:栅格图层展示
- percpu_init_late
- 浮点数计算
- MATLAB入门0
- linux系统基本操作——系统虚拟机管理
- 集合类的ArrayList的应用实例
- python_xml文件的解析与构建