POJ 1065 & ZOJ 1025
I'm so stupid...I have Waed so many times on this problem...
这是神奇的Dilworth定理的一个应用,可以自行google一下,非常amazing的一个theory
以木头的一个性质(例如长度升序排列),之后将思路转化为了最长下降子序列(这里的下降是针对另一个性质),DP求解。
实际上相当于把题目中,不需要setup time时的条件看作是一个偏序,然后这就是一个显然对Dilworth定理。
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int maxn= 5e3+5;
const int INF= 0x7f7f7f7f;
struct Wod{
int l, w;
Wod()= default;
Wod(int ll, int ww) : l(ll), w(ww) {}
bool operator < (const Wod& a) const{
return l< a.l || (l== a.l && w< a.w);
}
}wds[maxn];
int lds[maxn], flg[maxn];
int ans= -INF;
void Init()
{
memset(flg, 0, sizeof(flg));
memset(lds, 0, sizeof(lds));
memset(wds, 0, sizeof(wds));
}
int main()
{
int T, n;
scanf("%d", &T);
while (T--){
Init();
scanf("%d", &n);
int l, w;
for (int i= 1; i<= n; ++i){
scanf("%d %d", &l, &w);
wds[i]= Wod(l, w);
}
sort(wds+1, wds+n+1);
for (int i= 1; i<= n; ++i){
for (int j= 1; j< i; ++j){
if (wds[j].w > wds[i].w && lds[j] > lds[i]){
lds[i]= lds[j];
}
}
++lds[i];
ans= max(ans, lds[i]);
}
printf("%d\n", ans);
}
return 0;
}
POJ 1065 & ZOJ 1025的更多相关文章
- POJ 1065 Wooden Sticks(zoj 1025) 最长单调子序列
POJ :http://poj.org/problem?id=1065 ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId= ...
- POJ 1562 && ZOJ 1709 Oil Deposits(简单DFS)
题目链接 题意 : 问一个m×n的矩形中,有多少个pocket,如果两块油田相连(上下左右或者对角连着也算),就算一个pocket . 思路 : 写好8个方向搜就可以了,每次找的时候可以先把那个点直接 ...
- POJ 1065 Wooden Sticks / hdu 1257 最少拦截系统 DP 贪心
参考链接:http://blog.csdn.net/xiaohuan1991/article/details/6956629 (HDU 1257 解题思路一样就不继续讲解) POJ 1065题意:给你 ...
- POJ 3076 / ZOJ 3122 Sudoku(DLX)
Description A Sudoku grid is a 16x16 grid of cells grouped in sixteen 4x4 squares, where some cells ...
- poj 3100 (zoj 2818)||ZOJ 2829 ||ZOJ 1938 (poj 2249)
水题三题: 1.给你B和N,求个整数A使得A^n最接近B 2. 输出第N个能被3或者5整除的数 3.给你整数n和k,让你求组合数c(n,k) 1.poj 3100 (zoj 2818) Root of ...
- POJ 1065
http://poj.org/problem?id=1065 题目的大体意思就是给一些木头长l,重w,有一个机器,如果切割这些木头的话,在i后面切割的i+1根木头满足长度和重量都要大于等于前一根则不需 ...
- poj -1065 Wooden Sticks (贪心or dp)
http://poj.org/problem?id=1065 题意比较简单,有n跟木棍,事先知道每根木棍的长度和宽度,这些木棍需要送去加工,第一根木棍需要一分钟的生产时间,如果当前木棍的长度跟宽度 都 ...
- poj 1080 zoj 1027(最长公共子序列变种)
http://poj.org/problem?id=1080 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=27 /* zoj ...
- [poj] 2396 [zoj] 1994 budget || 有源汇的上下界可行流
poj原题 zoj原题 //注意zoj最后一行不要多输出空行 现在要针对多赛区竞赛制定一个预算,该预算是一个行代表不同种类支出.列代表不同赛区支出的矩阵.组委会曾经开会讨论过各类支出的总和,以及各赛区 ...
随机推荐
- 博客已搬迁到 blog.vivym.xyz
博客已搬迁到 blog.vivym.xyz
- Java IO: 异常处理
原文链接 作者:Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 流与Reader和Writer在结束使用的时候,需要正确地关闭它们.通过调用close()方法 ...
- PyTorch模型加载与保存的最佳实践
一般来说PyTorch有两种保存和读取模型参数的方法.但这篇文章我记录了一种最佳实践,可以在加载模型时避免掉一些问题. 第一种方案是保存整个模型: 1 torch.save(model_object, ...
- [LC] 104. Maximum Depth of Binary Tree
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...
- 吴裕雄--天生自然HTML学习笔记:HTML 链接
HTML 链接 HTML 使用超级链接与网络上的另一个文档相连.几乎可以在所有的网页中找到链接.点击链接可以从一张页面跳转到另一张页面. HTML 超链接(链接) HTML使用标签 <a> ...
- 如果你的unordered_map头文件报错请看这里
请将include<unordered_map>头文件换成下面代码 #if(__cplusplus == 201103L) #include <unordered_map> # ...
- UML 类图介绍
UML 类图介绍 一. UML 简介 UML ( Unified Modeling Language )即统一建模语言,是 OMG ( Object Management Group )发表的图标式软 ...
- 企业级rancher搭建Kubernetes(采用rancher管理平台搭建k8s)
一.简介 Rancher简介 来源官方:https://www.cnrancher.com/ Rancher是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开源软件去从 ...
- Python野生库
https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
- Python---3基础输入方法
一字符串写法 1.单一字符串 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字.比如输出'hello, world',用代码实现如下: >>> print('hell ...