NYOJ 矩形嵌套
来源:互联网 发布:u盘重装mac,出现圈 编辑:程序博客网 时间:2024/06/02 02:15
矩形嵌套
时间限制: 3000ms
内存限制: 128000KB
64位整型: Java 类名:上一题
提交 运行结果 统计 讨论版
下一题题目描述
有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),表示矩形的长和宽
每组测试数据的第一行是一个正正数n,表示该组测试数据中含有矩形的个数(n<=1000)
随后的n行,每行有两个数a,b(0<a,b<100),表示矩形的长和宽
输出
每组测试数据都输出一个数,表示最多符合条件的矩形数目,每组输出占一行
样例输入
1101 22 45 86 107 93 15 812 109 72 2
样例输出
5
来源
NYOJ
思路:使用结构体,用sort排序,在用book标记,每个矩形符合题意,输出最大值。
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;struct note{ double chang,kuan;}que[1100];bool cmp(note a,note b){ if(a.chang!=b.chang) return a.chang<b.chang; else return a.kuan<b.kuan;}int main(){ int t; scanf("%d",&t); while(t--) { double a,b,term1,term2; int i,j,s,max=-1,term,n,book[1100]; memset(book,1,sizeof(book)); scanf("%d",&n); for(i=0;i<n;i++) { scanf("%lf %lf",&a,&b); if(a<b) {term1=a;a=b;b=term1;} que[i].chang=a;que[i].kuan=b; } sort(que,que+n,cmp); for(i=0;i<n;i++) { term1=que[i].chang;term2=que[i].kuan;max=1; for(j=0;j<=i;j++) if(que[j].chang<term1&&que[j].kuan<term2) { term=book[j]+1; if(term>max) max=term; } book[i]=max; } max=-1; for(i=0;i<n;i++) { if(book[i]>max) max=book[i]; } printf("%d\n",max); } return 0;}
0 0
- NYOJ 16 矩形嵌套
- nyoj 16 矩形嵌套
- NYOJ 16 矩形嵌套
- NYOJ 矩形嵌套
- nyoj 16 矩形嵌套
- nyoj-16-矩形嵌套
- NYOJ 16 矩形嵌套
- nyoj-矩形嵌套
- NYOJ 16 矩形嵌套
- 嵌套矩形(nyoj 16)
- 矩形嵌套(nyoj 16)
- NYOJ 16 矩形嵌套
- NYOJ 16 矩形嵌套
- nyoj 16 矩形嵌套
- NYOJ 16 矩形嵌套
- NYOJ-16-矩形嵌套
- NYOJ 16 矩形嵌套
- NYOJ 16 - 矩形嵌套
- fuse挂载hdfs文件系统
- git本地忽略文件
- AngularJS第一讲
- TensorsFlow学习笔记2----教程综述
- <4>:TCP自连接
- NYOJ 矩形嵌套
- RMQ (Range Minimum/Maximum Query)算法
- cdh源
- angular.js 课程---第一讲 入门分享
- HDU_1159 Common Subsequence 【动态规划】
- Jquery无限滚动加载插件
- hive添加认证
- tensorflow之Graph save and restore in python and c++(C++ 中使用tensorflow)
- 一个大四实习生从安卓小白到可以独自承担安卓和web前端的一年奋斗之旅