矩形嵌套 nyoj 16
来源:互联网 发布:pp软件源地址 编辑:程序博客网 时间:2024/06/05 06:36
矩形嵌套
时间限制:3000 ms | 内存限制:65535 KB
难度:4
- 描述
- 有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 1
5 812 109 72 2
- 样例输出
5
#include <stdio.h>#include <stdlib.h>#include <string.h>#define M 1000int dp[M];struct Node{ int len; int wight;}s[M];// 从大到小排序int cmp(const void *a, const void *b){ Node * c = (Node *)a; Node * d = (Node *)b; if(c->len!=d->len) return d->len-c->len; else return d->wight-c->wight;}int main(){ int N; scanf("%d",&N); while(N--) { int n; scanf("%d",&n); int i,j; for(i=0;i<n;i++) { scanf("%d%d",&s[i].len,&s[i].wight);//矩阵中长宽等价 if(s[i].len<s[i].wight) { int t =s[i].len; s[i].len = s[i].wight; s[i].wight = t; } } qsort(s,n,sizeof(s[0]),cmp); int max = 0,Max = 0; memset(dp,0,sizeof(dp)); for(i=1;i<n;i++) { max = 0; for(j=0;j<i;j++) { if(s[i].len<s[j].len && s[i].wight<s[j].wight && max<dp[j] + 1) { max = dp[j] + 1; } } dp[i] = max; if(Max<dp[i]) { Max = dp[i]; } } printf("%d\n",Max+1); } return 0;}
0 0
- NYOJ 16 矩形嵌套
- nyoj 16 矩形嵌套
- NYOJ 16 矩形嵌套
- nyoj 16 矩形嵌套
- nyoj-16-矩形嵌套
- NYOJ 16 矩形嵌套
- NYOJ 16 矩形嵌套
- 嵌套矩形(nyoj 16)
- 矩形嵌套(nyoj 16)
- NYOJ 16 矩形嵌套
- NYOJ 16 矩形嵌套
- nyoj 16 矩形嵌套
- NYOJ 16 矩形嵌套
- NYOJ-16-矩形嵌套
- NYOJ 16 矩形嵌套
- NYOJ 16 - 矩形嵌套
- NYOJ-16 矩形嵌套
- NYOJ 16 矩形嵌套
- IOS网络笔记--AFNworking练习之文件下载
- TC SRM 671 Div2 1000 BearDestroysDiv2
- 图搜索算法(深度优先搜索、迭代加深的深度优先搜索、广度优先搜索、代价一致搜索、A*搜索)
- 经济学模型2-生产可能性边界
- 对初始化函数OSInit()的理解
- 矩形嵌套 nyoj 16
- 多层嵌套JSON格式数据的快速解析
- 他学习编程语言很快,为什么?
- 灰度对数变换
- 1027. 打印沙漏(20)
- iOS MVC开发模式的优缺点
- HDU2095
- 人脸识别---人脸图像预处理
- iOS中图片的缩放