首页 > 其他分享 >4D

4D

时间:2024-03-29 13:34:22浏览次数:18  
标签:le int 二维 ans 物品 4D

Mysterious Present

题面翻译

给出一个限制 $(w,h)$ 和 $n$ 个物品的二维信息$(w_i,h_i)$

求物品二维都满足 $w_i>w,h_i>h$ 的前提下的最长二维严格上升子序列以及其长度$(w_i>w_{i-1},h_i > h_{i-1}$ )

如果找不到任何一个物品满足条件 只需输出一行 0

( $1<=n<=5000$ , $1<=w,h<=10{6},1<=w_{i},h_{i}<=10$ ).

分析

首先对于 $w_i\le w 且 h_j \le h$ 的 $i$ 不应当考虑。
接下来就是一个二维的最长上升子序列的问题了,可以对信封进行一个排序。
注意到 $n$ 的只有 $5000$ ,$O(n^2)$ 解决。 (绝对不是不会 $n log n$)

#include <bits/stdc++.h>
using namespace std;

const int N = 1e5 + 5;

int n, w, h, cnt, ans;
int d[N], p[N];

struct node{
    int w, h, id;
    bool operator<(node a){
        return w < a.w && h < a.h;
    }
    
} letter[N];

void P(int now){
    if (!now) return ;
    P(p[now]); cout << letter[now].id << " ";
}

signed main(){
    
    cin >> n >> w >> h;
    for (int i = 1, a, b; i <= n; i++){
        cin >> a >> b;
        if (a <= w || b <= h) continue;
        letter[++cnt] = {a, b, i};
    } n = cnt;
    
    if (!cnt){
        cout << 0;
        return 0;
    }
    
    sort(letter + 1, letter + 1 + n, [](node a, node b){
        return make_pair(a.w, a.h) < make_pair(b.w, b.h);
    });
    
    for (int i = 1; i <= n; i++)
        d[i] = 1;
    
    for (int i = 1; i <= n; i++){
        for (int j = 1; j < i; j++){
            if (letter[j].w < letter[i].w && letter[j].h < letter[i].h){
                if (d[j] + 1> d[i]){
                    d[i] = d[j] + 1;
                    p[i] = j;
                }
            }
        }
        if (d[i] > d[ans]){
            ans = i;
        }
    }
    
    cout << d[ans] << endl;
    P(ans);

    return 0;
}

Written with StackEdit中文版.

标签:le,int,二维,ans,物品,4D
From: https://www.cnblogs.com/genshin-player/p/18103658

相关文章

  • 毫米波雷达系列(七):4D成像毫米波雷达产品汇总(2/3)
    前面文章分析了4D毫米波雷达的基本概念和优劣势,接下来3篇文章,简要梳理一下国内外主要的毫米波雷达厂家在4D成像雷达的布局,雷达产品的基本方案和主要特点。从市场产品布局的角度,尝试分析一下4D成像毫米波雷达未来的发展趋势。第一篇:国外传统雷达厂商的4D成像雷达产品第二篇:国内......
  • x64dbg破解EnableMenu.exe
    最近在学re,正好记录一下解题思路和x64dbg的使用。目录运行程序搜索API寻找调用者位置打上补丁方法一方法二运行程序首先运行exe文件,发现菜单中的Menue功能被禁用了,无法点击。所以,现在的目标就是修改程序,使菜单有效。搜索API由于该文件是32位的exe文件,所以应该......
  • 14DOM编程API(二)
    1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="UTF-8">5<metaname="viewport"content="width=device-width,initial-scale=1.0">6<title>Document......
  • npm ERR! path /Users/apple/.npm/_cacache/index-v5/11/77/cf18d9ab54d565b57fb3
    在使用npm时,有时候您可能会遇到类似以下错误的权限问题:npmERR!path/Users/apple/.npm/_cacache/index-v5/11/77/cf18d9ab54d565b57fb3npmERR!codeEACCESnpmERR!errno-13npmERR!syscallopennpmERR!Error:EACCES:permissiondenied,open'/Users/apple/......
  • 4D毫米波雷达原理和系统方案
    4D毫米波雷达原理和系统方案附赠自动驾驶学习资料和量产经验:链接4D毫米波雷达的性能比一般的“3D”雷达要高,体现在距离远,精度高,角分辨率高等方面。那么4D成像毫米波雷达是如何做到的呢?本篇文章从雷达指标方程上进行简要的解释,以及介绍一下主流的4D毫米波雷达系统方案。1.......
  • 4D毫米波雷达原理和系统方案
    4D毫米波雷达原理和系统方案附赠自动驾驶学习资料和量产经验:链接4D毫米波雷达的性能比一般的“3D”雷达要高,体现在距离远,精度高,角分辨率高等方面。那么4D成像毫米波雷达是如何做到的呢?本篇文章从雷达指标方程上进行简要的解释,以及介绍一下主流的4D毫米波雷达系统方案......
  • 「ABC124D」 Handstand
    题意给一个长度为\(n\)的01串\(s\),可以至多进行\(k\)次操作,每次操作可以把任意子串取反,求操作后最长的连续1串长度。分析\(n\)的范围“友好”地告诉我们最大\(O(n\logn)\)。最开始想的是把每一块分出来跑dp,然后发现写不出来\(O(n)\)的式子。(去世)想了一会后注......
  • Cinema 4D 2024.1(C4D2024)安装包下载及安装教程
    下载链接:https://docs.qq.com/doc/DTE5lQ2RmR2JKWk5w1.双击进行解压,点击“开始”2.选中“MaxonCINEMA4DStudio2024.1.exe”右键以管理员身份运行3.点击“前进”4.选择安装路径,点击“前进”(建议和我的安装路径保持一致)5.软件正在安装中,请耐心等待安装完成......
  • ARC174D Digit vs Square Root 题解
    ARC174DDigitvsSquareRoot题目大意给定\(N\),求有多少个正整数\(x(1\leqx\leqN)\)满足:在十进制表示下,\(\lfloorx\rfloor\)是\(x\)的前缀。Solve很难直接手推性质,考虑用如下程序打表:#include<bits/stdc++.h>#pragmaGCCoptimize(1,2,3,"Ofast","inline")usin......
  • CF1514D-区间(绝对)众数-莫队、随机化、可持久化线段树
    link:https://codeforces.com/contest/1514/problem/D很久以前小号打的场了,当时D题写的莫队,现在重新来看看。题意:给一个序列\([a_1,\dots,a_n]\),有q次询问,每次问:把\([a_l,\dots,a_r]\)划分最少几个不相交子序列,才能使得每个子序列是beautiful的。称一个序列\(a_1,\dots,a_x\)......