ny16 矩形嵌套
矩形嵌套
- 描述
- 有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),表示矩形的长和宽 - 输出
- 每组测试数据都输出一个数,表示最多符合条件的矩形数目,每组输出占一行
- 样例输入
-
1
10
1 2
2 4
5 8
6 10
7 9
3 1
5 8
12 10
9 7
2 2 - 样例输出
-
5
解法一:按照面积大小和面积相同的按照长度进行排序#include<stdio.h>
#include<string.h>
int main()
{
int t,l1,l2,l3,sum,n;
int i,j,m;
int a[],b[],c[],d[];
scanf("%d",&t);
while(t--)
{sum=;memset(d,,sizeof(d));
scanf("%d",&n);
for(i=;i<n;i++)
{
scanf("%d %d",&a[i],&b[i]);
if(a[i]>b[i])
{m=a[i];a[i]=b[i];b[i]=m;}
c[i]=a[i]*b[i];
}
for(j=;j<n-;j++)
for(i=;i<n--j;i++)
{
if(c[i]>c[i+])//按照面积先进行排序
{
int x=c[i];c[i]=c[i+];c[i+]=x;
int y=a[i];a[i]=a[i+];a[i+]=y;
int z=b[i];b[i]=b[i+];b[i+]=z;
}
if(c[i]==c[i+])
{
if(b[i]>b[i+])如果面积相同的,按照长进行排序
{
int x=c[i];c[i]=c[i+];c[i+]=x;
int y=a[i];a[i]=a[i+];a[i+]=y;
int z=b[i];b[i]=b[i+];b[i+]=z;
}
}
}
// for(i=0;i<n;i++)
// printf("%d %d %d\n",a[i],b[i],c[i]);//
for(i=;i<n;i++)
{sum=;
for(j=;j<i;j++) if(c[j]>c[j-])
{
if((a[i]>a[j] && b[i]>b[j]) && d[j]+>d[i])
{
d[i]=d[i]+;//贪心法,的累加
}
}
if(d[i]>sum)
sum=d[i];
}
printf("%d\n",sum+);
}
return ;
}解法二:直接按照长进行排序
#include"stdio.h"
#define M 1024
main(){
int m,n,t,i,j,x;
float
a[M],b[M];
scanf("%d",&m);
for(x=;x<m;x++){
int
c[M]={};
scanf("%d",&n);
for(i=;i<=n-;i++){
scanf("%f
%f",&a[i],&b[i]);
if(a[i]<b[i]){
t=b[i];
b[i]=a[i];
a[i]=t;}
}
for(i=;i<n-;i++){
for(j=;j<n-i-;j++)
if(a[j]>a[j+]){
t=a[j];
a[j]=a[j+];
a[j+]=t;
t=b[j];
b[j]=b[j+];
b[j+]=t;
}}
for(i=;i<n-;i++)
for(j=i+;j<n;j++)
{
if(b[j]>b[i]&&a[i]<a[j]){
if(c[j]<(c[i]+))
c[j]=c[i]+;
}
}
for(i=;i<n-;i++)
if(c[i]>c[i+])
c[i+]=c[i];
c[i]++;
if(n<=)c[i]=;
printf("%d\n",c[i]);
}}
ny16 矩形嵌套的更多相关文章
- NYOJ16 矩形嵌套(DAG最长路)
矩形嵌套 紫书P262 这是有向无环图DAG(Directed Acyclic Graph)上的动态规划,是DAG最长路问题 [题目链接]NYOJ16-矩形嵌套 [题目类型]DAG上的dp & ...
- nyoj 16 矩形嵌套
矩形嵌套 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a& ...
- NYOJ 16 矩形嵌套(动态规划)
矩形嵌套 时间限制: 3000 ms | 内存限制: 65535 KB 难度: 4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅 ...
- 矩形嵌套(LIS)
矩形嵌套 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a& ...
- NYOJ - 矩形嵌套(经典dp)
矩形嵌套时间限制:3000 ms | 内存限制:65535 KB 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b< ...
- 矩形嵌套(dp)
矩形嵌套 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a& ...
- NYOJ 16 矩形嵌套(经典DP)
http://acm.nyist.net/JudgeOnline/problem.php?pid=16 矩形嵌套 时间限制:3000 ms | 内存限制:65535 KB 难度: ...
- 【动态规划】矩形嵌套 (DGA上的动态规划)
[动态规划]矩形嵌套 时间限制: 1 Sec 内存限制: 128 MB提交: 23 解决: 9[提交][状态][讨论版] 题目描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a, ...
- nyoj 题目16 矩形嵌套
矩形嵌套 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a& ...
随机推荐
- 深入浅出 - Android系统移植与平台开发(十三)- Android的对象管理
第六章.Android的对象管理 在Java中,不再使用的对象会通过gc机制来自己主动回收.而Android系统执行时库层代码是由C++编写的,在C++中创建的对象通常使用指针来操作,一旦使用不当.轻 ...
- 算法笔记_174:历届试题 地宫取宝(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明 ...
- Memcached安装与配置
memcached是danga.com的一个项目.它是一款开源的高性能的分布式内存对象缓存系统.最早是给LiveJournal提供服务的.后来逐渐被越来越多的大型站点所採用.用于在应用中减少对数据库 ...
- 【Oracle】性能优化
优化原则 1.在select语句中避免使用* 2.使用Truncate清空表 2.1语法 Truncate [table|cluster] shema.[table_name][cluster_nam ...
- webservice系统学习笔记6-使用soap的header传递消息
1.显示的使用soap的header传递消息(不推荐使用,会破坏正常的代码结构,推荐使用handler处理) @WebResult(name="deleteResult") pub ...
- (转)CATALINA_BASE与CATALINA_HOME的区别
到底CATALINA_HOME和CATALINA_BASE有什么区别呢,之前因为都是小打小闹的在服务器上安装一个tomcat就得了,然后根据前人的配置,将CATALINA_HOME和CATALINA_ ...
- Tomcat SSL配置 Connector attribute SSLCertificateFile must be defined when using SSL with APR解决
原文地址:http://blog.csdn.net/kissliux/article/details/17392003 Tomcat 6版本配置SSL过程有两步: 1.用JDK自带的keytool.e ...
- 微信小程序独家秘笈之抽奖大转盘
代码地址如下:http://www.demodashi.com/demo/14209.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...
- leetcode || 58、Length of Last Word
problem: Given a string s consists of upper/lower-case alphabets and empty space characters ' ', ret ...
- jquery json ajax三级联动
province_city_area.jsp <%@ page language="java" pageEncoding="UTF-8"%> < ...