矩形嵌套

 1 /*
 2 不是贪心,若是先按长排序在按宽,若是长很大宽很小 ,则若是后边款稍微大一些就不行了
 3 */
 4 #include <stdio.h>
 5 #include <iostream>
 6 #include <cstring>
 7 #include <algorithm>
 8 using namespace std;
 9
10 const int N = 1005;
11 typedef struct Node
12 {
13     int a;
14     int b;
15 }Node;
16 Node q[N];
17 int n;
18 int d[N];
19
20 bool cmp(const Node &a, const Node &b)
21 {
22     if (a.a == b.a)
23         return a.b < b.b;
24     return a.a < b.a;
25 }
26
27 bool judge(int i, int j)
28 {
29     bool flag = q[i].a>q[j].a && q[i].b>q[j].b;
30     if (flag)
31     {
32         return true;
33     }
34     return false;
35 }
36
37 int main()
38 {
39     int T;
40     int a, b;
41     int i,j,k;
42     cin>>T;
43     while (T--)
44     {
45         cin>>n;
46         for (i=1; i<=n; i++)
47         {
48             cin>>a>>b;
49             if (a>b)
50             {
51                 swap(a, b);
52
53             }
54             q[i].a = a;
55             q[i].b = b;
56         }
57
58         sort(q+1, q+n+1, cmp);
59         int ans = 1;
60         for (i=1; i<N; i++)
61         {
62             d[i] = 1;
63         }
64
65         for (i=2; i<=n; i++)//递推
66         {
67             for (j=i-1; j>0; j--)
68             {
69                 if (judge(i, j))
70                 {
71                     int temp = d[j] + 1;//数组d必须要初始化
72                     if(d[i]>temp)
73                        d[i] = temp;
74                 }
75             }
76             if(ans>d[i])
77                  ans = d[i];
78
79         }
80         cout<<ans<<endl;
81     }
82     system("pause");
83     return 0;
84 }

 

时间: 2024-10-16 04:52:22

矩形嵌套的相关文章

NYOJ 16(矩形嵌套)

  矩形嵌套 时间限制: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),表示测试数据

NYOJ&amp;#160;16&amp;#160;矩形嵌套

题意:给出若干矩形的长和宽,小的矩形可以嵌套在大的矩形中,求矩形最多的嵌套中矩形的个数做法:嵌套关系是二元关系,转化为DAG上的最长路径问题,使用邻接表+状态转移方程即可,经典递归思想. 代码: //nyoj 16 #include #include #include using namespace std; const int maxn = 150; int graph[maxn][maxn]; int d[maxn], n, a[maxn], b[maxn]; int max(int a,

标准的loading制作方法

loading|标准 前言:网络中的swf影片是可以实现边下载边播放的,由于受到当前网络传输的制约,对于大容量的影片,这种实时播放并不理想.为避免受众尴尬的等待,flash制作人员往往设计一个加载(loading)的画面,等影片的全部字节下载到本地后再播放,从而保证影片的播放质量.本文将介绍一种较为标准的loading制作方法. 步骤:1.打开Flash MX 2004,选择矩形工具,在主场景中画出下一个只有边框有矩形,本例该矩形大小为350*16像素.2.再在主场景中仍用矩形工具画出一个只有填

提高播放质量 Flash标准loading制作方法

loading|标准     网络中的swf影片是可以实现边下载边播放的,由于受到当前网络传输的制约,对于大容量的影片,这种实时播放并不理想.为避免受众尴尬的等待,flash制作人员往往设计一个加载(loading)的画面,等影片的全部字节下载到本地后再播放,从而保证影片的播放质量.本文将介绍一种较为标准的loading制作方法. 步骤: 1.打开Flash MX 2004,选择矩形工具,在主场景中画出下一个只有边框有矩形,本例该矩形大小为350*16像素. 2.再在主场景中仍用矩形工具画出一个

Flash 实用编程百例解读三

编程 前言:网络中的swf影片是可以实现边下载边播放的,由于受到当前网络传输的制约,对于大容量的影片,这种实时播放并不理想.为避免受众尴尬的等待,flash制作人员往往设计一个加载(loading)的画面,等影片的全部字节下载到本地后再播放,从而保证影片的播放质量.本文将介绍一种较为标准的loading制作方法. 步骤:1.打开Flash MX 2004,选择矩形工具,在主场景中画出下一个只有边框有矩形,本例该矩形大小为350*16像素.2.再在主场景中仍用矩形工具画出一个只有填充而无边框的矩形

Flash 实用编程百例解读

编程 前言:网络中的swf影片是可以实现边下载边播放的,由于受到当前网络传输的制约,对于大容量的影片,这种实时播放并不理想.为避免受众尴尬的等待,flash制作人员往往设计一个加载(loading)的画面,等影片的全部字节下载到本地后再播放,从而保证影片的播放质量.本文将介绍一种较为标准的loading制作方法. 步骤: 1.打开Flash MX 2004,选择矩形工具,在主场景中画出下一个只有边框有矩形,本例该矩形大小为350*16像素. 2.再在主场景中仍用矩形工具画出一个只有填充而无边框的

Flash 实用编程解读

编程 简介:    网络中的swf影片是可以实现边下载边播放的,由于受到当前网络传输的制约,对于大容量的影片,这种实时播放并不理想.为避免受众尴尬的等待,flash制作人员往往设计一个加载(loading)的画面,等影片的全部字节下载到本地后再播放,从而保证影片的播放质量. 步骤:1.打开Flash MX 2004,选择矩形工具,在主场景中画出下一个只有边框有矩形,本例该矩形大小为350*16像素.2.再在主场景中仍用矩形工具画出一个只有填充而无边框的矩形,并按F8键将其转换为影片剪辑(注:其注

制作Flash Loading 加载进度条_Flash As

复制代码 代码如下: 前言:网络中的swf影片是可以实现边下载边播放的,由于受到当前网络传输的制约,对于大容量的影片,这种实时播放并不理想.为避免受众尴尬的等待,flash制作人员往往设计一个加载(loading)的画面,等影片的全部字节下载到本地后再播放,从而保证影片的播放质量.本文将介绍一种较为标准的loading制作方法. 步骤: 1.打开Flash MX 2004,选择矩形工具,在主场景中画出下一个只有边框有矩形,本例该矩形大小为350*16像素. 2.再在主场景中仍用矩形工具画出一个只

Codeforces Beta Round #4 (Div. 2 Only)

点击打开链接 A #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> using namespace std; int main(){ int n; while(scanf("%d" , &n) != EOF){ if(n < 4) printf("NO\n"); else{ if(n%2 == 0) prin