矩形嵌套

时间限制: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),表示矩形的长和宽

输出
每组测试数据都输出一个数,表示最多符合条件的矩形数目,每组输出占一行
样例输入
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 矩形嵌套的更多相关文章

  1. NYOJ16 矩形嵌套(DAG最长路)

    矩形嵌套 紫书P262 这是有向无环图DAG(Directed Acyclic Graph)上的动态规划,是DAG最长路问题 [题目链接]NYOJ16-矩形嵌套 [题目类型]DAG上的dp & ...

  2. nyoj 16 矩形嵌套

    矩形嵌套 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a& ...

  3. NYOJ 16 矩形嵌套(动态规划)

    矩形嵌套 时间限制: 3000 ms  |  内存限制: 65535 KB 难度: 4   描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅 ...

  4. 矩形嵌套(LIS)

    矩形嵌套 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a& ...

  5. NYOJ - 矩形嵌套(经典dp)

    矩形嵌套时间限制:3000 ms | 内存限制:65535 KB 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b< ...

  6. 矩形嵌套(dp)

    矩形嵌套 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a& ...

  7. NYOJ 16 矩形嵌套(经典DP)

    http://acm.nyist.net/JudgeOnline/problem.php?pid=16 矩形嵌套 时间限制:3000 ms  |           内存限制:65535 KB 难度: ...

  8. 【动态规划】矩形嵌套 (DGA上的动态规划)

    [动态规划]矩形嵌套 时间限制: 1 Sec  内存限制: 128 MB提交: 23  解决: 9[提交][状态][讨论版] 题目描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a, ...

  9. nyoj 题目16 矩形嵌套

    矩形嵌套 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a& ...

随机推荐

  1. 使用Fiddler抓包调试https下的页面

    众所周知https技术诞生以来,一个很重要的作用就是加密通信内容.所以在项目团队将业务站点实施完https改造以后,原先使用fiddler进行抓包的美好生活到头了.其实fiddler本身是支持对于ht ...

  2. SpringMVC通过邮件找回密码功能的实现

    1.最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回.通过java发送邮件的功能我就不说了,重点讲找回密 ...

  3. PHP MySQL 连接数据库

    PHP连接MySQL的小实例 <?php  /*时间:2014-09-14  *作者:葛崇  *功能:PHP连接MySQL小实例  * */ /* SQL 脚本.直接贴到命令行运行. DROP  ...

  4. PHP 循环

    PHP 中的循环语句用于执行相同的代码块指定的次数. 循环 在您编写代码时,您经常需要让相同的代码块运行很多次.您可以在代码中使用循环语句来完成这个任务. 在 PHP 中,我们可以使用下列循环语句: ...

  5. wso2esb安装及helloworld

    1.系统环境 Ubuntu12.04    192.168.0.97    root/password找管理员 Ubuntu12.04    192.168.0.99    root/password ...

  6. JavaWeb get请求乱码处理

      乱码终极解决方案 Author:Marydon 一.安装好eclipse/myeclipse后,先将开发环境改成UTF-8; 更改工作空间编码方式 window-->preferences- ...

  7. python之模块csv之CSV文件的写入(基本结构)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #CSV文件的写入(基本结构) import csv #csv文件,是一种常用的文本格式,用以存储表格数据,很 ...

  8. 基于FFmpeg的音频编码(PCM数据编码成AAC android)

    概述 在Android上实现录音,并利用 FFmpeg将PCM数据编码成AAC. 详细 代码下载:http://www.demodashi.com/demo/10512.html 之前做的一个demo ...

  9. Android API之android.content.AsyncQueryHandler

    android.content.AsyncQueryHandler A helper class to help make handling asynchronous ContentResolver ...

  10. beanUtils的用法

    举例1:使用BeanUtils工具封装用户提交的数据. public static void main(String[] args)throws Exception { // 模拟用户的输入的数据如下 ...