传送门

题意:

  现在我们有 n 个信封,然后我们有一张卡片,并且我们知道这张卡片的长和宽。

  现给出这 n 个信封的长和宽,我们想形成一个链,这条链的长度就是这条链中所含有的信封的数量;

  但是需要满足①信封a可以连接信封b当且仅当信封a的长和宽分别严格小于信封b的长和宽。

             ②构成这条长链的所有信封的长和宽分别严格小于卡片的长和宽。

  问最多可以形成多长的链,并且输出我们选取的链的编号;

题解:

  DAG上的动态规划;

  如果信封对于任意两个信封 a,b 满足上述条件①②,那么连一条由a指向b的有向边;

  O(n2)预处理出所有满足条件的(a,b);

  求解DAG上的最长路;

  正解,nice,可你别忘了,最大需要开 n2 = 25000000 的数组存图,emmm;

  

  然后,不断地试探,最终

  

  啊,最后一个点,翻车了;

  出题人也太坏了叭;  

  正解:首先对于这 n 个信封,按照 w 从小到大排序,然后,找 h 的最长上升子序列;

AC代码:

 #include<bits/stdc++.h>
using namespace std;
#define memF(a,b,n) for(int i=0;i <= n;a[i]=b,++i);
const int maxn=5e3+; int n,w,h;
struct Date
{
int w,h;
int id;
bool operator < (const Date& obj) const
{
return w < obj.w;
}
}_date[maxn];
int dp[maxn]; bool isSat(int i,int j)
{
return _date[i].w < _date[j].w && _date[i].h < _date[j].h;
}
void Solve()
{
sort(_date+,_date+n+);
memF(dp,,n);
for(int i=n-;i >= ;--i)
for(int j=i+;j <= n;++j)
if(isSat(i,j))
dp[i]=max(dp[j]+,dp[i]); int ans=;
int cur;
for(int i=;i <= n;++i)
if(isSat(,i) && dp[i] > ans)
{
ans=dp[i];
cur=i;
} printf("%d\n",ans);
if(ans == )
return ; printf("%d",_date[cur].id);
for(int i=;i <= n;++i)
if(dp[i] == dp[cur]- && isSat(cur,i))
printf(" %d",_date[i].id),cur=i;
printf("\n");
}
int main()
{
scanf("%d%d%d",&n,&w,&h);
for(int i=;i <= n;++i)
{
scanf("%d%d",&_date[i].w,&_date[i].h);
_date[i].id=i;
}
_date[]={w,h}; Solve(); return ;
}

Codeforces Beta Round #4 (Div. 2 Only) D. Mysterious Present(LIS)的更多相关文章

  1. Codeforces Beta Round #4 (Div. 2 Only) D. Mysterious Present 记忆化搜索

    D. Mysterious Present 题目连接: http://www.codeforces.com/contest/4/problem/D Description Peter decided ...

  2. Codeforces Beta Round #80 (Div. 2 Only)【ABCD】

    Codeforces Beta Round #80 (Div. 2 Only) A Blackjack1 题意 一共52张扑克,A代表1或者11,2-10表示自己的数字,其他都表示10 现在你已经有一 ...

  3. Codeforces Beta Round #83 (Div. 1 Only)题解【ABCD】

    Codeforces Beta Round #83 (Div. 1 Only) A. Dorm Water Supply 题意 给你一个n点m边的图,保证每个点的入度和出度最多为1 如果这个点入度为0 ...

  4. Codeforces Beta Round #79 (Div. 2 Only)

    Codeforces Beta Round #79 (Div. 2 Only) http://codeforces.com/contest/102 A #include<bits/stdc++. ...

  5. Codeforces Beta Round #77 (Div. 2 Only)

    Codeforces Beta Round #77 (Div. 2 Only) http://codeforces.com/contest/96 A #include<bits/stdc++.h ...

  6. Codeforces Beta Round #76 (Div. 2 Only)

    Codeforces Beta Round #76 (Div. 2 Only) http://codeforces.com/contest/94 A #include<bits/stdc++.h ...

  7. Codeforces Beta Round #75 (Div. 2 Only)

    Codeforces Beta Round #75 (Div. 2 Only) http://codeforces.com/contest/92 A #include<iostream> ...

  8. Codeforces Beta Round #74 (Div. 2 Only)

    Codeforces Beta Round #74 (Div. 2 Only) http://codeforces.com/contest/90 A #include<iostream> ...

  9. Codeforces Beta Round #73 (Div. 2 Only)

    Codeforces Beta Round #73 (Div. 2 Only) http://codeforces.com/contest/88 A 模拟 #include<bits/stdc+ ...

随机推荐

  1. liferay 7用OSGi的方式修改默认权限

    事先声明,支持这一功能的新版本还没有发布,2017年5月份才支持的 1.以前在62的时候是通过修改ext项目进行修改 2.现在在70可以通过Module Fragment项目进行修改 相关文件:现在出 ...

  2. $.extend用法详解(一)

    jQuery.extend( target [, object1 ] [, objectN ] ) 在这里target是Object,它有两个作用: 1. 如果后面没有对应的object1及objec ...

  3. LintCode 斐波纳契数列

    查找斐波纳契数列中第 N 个数. 所谓的斐波纳契数列是指: 前2个数是 0 和 1 . 第 i 个数是第 i-1 个数和第i-2 个数的和. 斐波纳契数列的前10个数字是: 0, 1, 1, 2, 3 ...

  4. linux下播放器设计和开发

    http://blog.csdn.net/henryjee/article/details/6737392 本文根据DawnLightPlayer的开发经验写成.DawnLithtPlayer是今天3 ...

  5. Spring中使用DataSourceTransactionManager进行事务管理的xml配置

    在一个业务的实现过程中,可能需要多条sql完成对数据库的操作,比如账户登录,需要匹配用户名和密码,然后要增加积分,还要记录登录的ip和时间,这可能需要三个sql语句,这三个语句应当是一个整体,任意一个 ...

  6. Ubuntu18.04+windows10双系统时间同步教程

    前言: 系统安装windows10和Ubuntu18.04双系统后会出现时间不同步的情况,往往windows系统的时间会有错误,一般会有8个小时的误差. 原因: 主要因为本地时间与硬件时间的时差: 本 ...

  7. SQL Server —— 主键和外键

    一.定义 1.1.什么是主键和外键 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键. 比如: 学生表(学号,姓名,性别,班级)其中 ...

  8. Python中并发前戏之操作系统

    进程: 1.串行: 一个任务完完整整地运行完毕后,才能运行下一个任务 2.并发 看起来多个任务是同时运行的即可,单核也可以实现并发 3.并行: 真正意义上多个任务的同时运行,只有多核才实现并行 1.什 ...

  9. 云上快速搭建Serverless AI实验室

    Serverless Kubernetes和ACK虚拟节点都已基于ECI提供GPU容器实例功能,让用户在云上低成本快速搭建serverless AI实验室,用户无需维护服务器和GPU基础运行环境,极大 ...

  10. 60.0.1(64位)windows版 uploadify使用有问题

    http://mozilla.com.cn/thread-403024-1-1.html 60.0.1(64位)版,在使用uploadify插件,上传附件时,上传没有问题,可以成功,但执行上传成功后的 ...