储备知识:Dilworth定理

偏序集的两个定理:

定理1)

令(X,≤)是一个有限偏序集,并令r是其最大链的大小。则X可以被划分成r个但不能再少的反链。
其对偶定理称为Dilworth定理:

定理2)

令(X,≤)是一个有限偏序集,并令m是反链的最大的大小。则X可以被划分成m个但不能再少的链。

即:链的最少划分数 = 反链的最长长度

例如:

1 7 8 2 3 4

反链:最长不上升子序列(如:(7,2))长度 = 2;

即:按升序划分,最少的链划分数为2,为(1,2,3,4)和(7,8)。

以上转自:https://www.cnblogs.com/submarinex/archive/2011/08/03/2126423.html

回到题目:Robot

题意:

有一些位置有垃圾,让机器人从左上角开始走,只能往右或者往下,问最少走多少次可以清理完所有垃圾、

题解:

一看就是网络流经典题,或者说是二分图—最小路径覆盖;但是现在毕竟是在做一些贪心,这道题用的是一种贪心相关定理,Dilworth定理。这道题可以理解为部分两点之间有偏序(可走的关系),呃,可以视为当xa<=xb&&ya<=yb时有偏序,那么姑且认为反之则为反偏序,那么定义一条链为由n-1个偏序连接起来的n个点,那么答案就是“最长反链的大小。
比如题中的数据1,我们经过处理得到2 4 4 6 4 7 6**(排序去掉一维)**,然后就转化成了求最长下降子序列。
显然逆序对是不能互相到达的,而反链就是一个逆序链,即我们所求的最长下降子序列。

————————————————

原文链接:https://blog.csdn.net/Vmurder/article/details/40818033

//2018114766 2020/7/3
#include<iostream>
#include<algorithm>
using namespace std;
#define  MAX 1000
#define inf 0x3f3f3f3f
struct point {int x, y;bool operator < (const point& a)const//重载<操作符。可以对两个point使用<操作符进行比较{if (x == a.x)return y < a.y; return x < a.x;}
}s[MAX];
int f[MAX];
int main() {int x, y,i,j;s[0].y = inf;//给[0]一个大值,使得单元素链的长度也能为1,否则在处理中为零while (cin >> x >> y,x+1,y+1) {//读取case的第一个点int cnt = 0;while (x && y) {//存储并读取这一个cases[++cnt].x = x;s[cnt].y = y;//!这里不用++,x、y是同一个元素下的cin >> x >> y;}sort(s+1,s+cnt+1);//计算偏序集,找最长下降链的长度for (i = 1; i <= cnt; i++) {f[i] = 0;for (j = i - 1; j >= 0; j--) {if (s[j].y > s[i].y)f[i] = max(f[i], f[j] + 1);//i在j结尾的最大链上+1}}//找到最长反链int ans = 0;for (i = 1; i <= cnt; i++)ans = max(ans, f[i]);cout << ans << endl;}
}

poj1548-Robots Dilworth定理(偏序集定理2)相关推荐

  1. 圆上的定理 —— 圆周角定理与相交弦定理

    相交弦定理的证明需要用到圆周角定理. 1. 圆周角定理 圆周角定理:同(等)弧所对圆周角相等: 2. 相交弦定理 相交弦定理:指圆内的两条相交弦,被交点分成的两条线段长的积相等. 或:经过圆内一点引两 ...

  2. 数学 {有界性定理,最值定理,零点定理,介值定理}

    数学 {有界性定理,最值定理,零点定理,介值定理} {有界性定理, 最值定理} 定义 有界性定理; ( f ( x ) 在闭区间上连续 ) ⟹ ( f ( x ) 在该区间上有界 ) (f(x)在闭区 ...

  3. 一阶非线性常微分方程解的存在性定理—Picard-Lindelof定理

    上一节简单介绍了可求解的一阶常微分方程的解法,因为大部分非线性方程是不可解的,所以需要给出解的存在性的证明.本节主要介绍一阶非线性常微分方程Cauchy问题 $$ (E)\,\,\,\,\,\frac ...

  4. 【luogu P3807】【模板】卢卡斯定理/Lucas 定理(含 Lucas 定理证明)

    [模板]卢卡斯定理/Lucas 定理 题目链接:luogu P3807 题目大意 求 C(n,n+m)%p 的值. p 保证是质数. 思路 Lucas 定理内容 对于非负整数 nnn,mmm,质数 p ...

  5. 045 中值定理总结(罗尔定理,拉格朗日定理,柯西定理,泰勒公式)及型一二三四五

    045 中值定理总结(罗尔定理,拉格朗日定理,柯西定理,泰勒公式)及型一二三四五

  6. cramer定理_Lundberg-Cramer定理

    补充资料:函数逼近,正定理和逆定理 函数逼近,正定理和逆定理 approximation of functions, direct and inverse theorems 函数逼近,正定理和逆定理[ ...

  7. BZOJ1951 [Sdoi2010]古代猪文 【费马小定理 + Lucas定理 + 中国剩余定理 + 逆元递推 + 扩展欧几里得】...

    题目 "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久很久以前,在山的那 ...

  8. P2480-[SDOI2010]古代猪文【中国剩余定理,Lucas定理】

    大早上起来写题有助于醒脑(其实是昨晚没睡好/kk 正题 题目链接:https://www.luogu.com.cn/problem/P2480 题目大意 给出nnn和ggg,求g∑d∣nCnd%999 ...

  9. [bzoj1951] [Sdoi2010]古代猪文 费马小定理+Lucas定理+CRT

    Description "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久 ...

最新文章

  1. NameError: name ‘sklearn‘ is not defined的解决方法:
  2. traceview android studio,TraceView 的正确打开方式
  3. 【云图】如何制作附近实体店的地图?-微信微博支付宝
  4. Python 开发者的 6 个必备库
  5. ACL访问控制列表【笔记|实验】
  6. JAVA bridge设计模式,java设计模式之Bridge
  7. 从苹果 M1 到英伟达 Grace,“缝合风”为何在芯片大厂中盛行?
  8. 为什么一定要重视隐式反馈?
  9. Fork/Join 框架-设计与实现(翻译自论文《A Java Fork/Join Framework》原作者 Doug Lea)...
  10. python模拟用户数据
  11. 遗传算法求解TSP问题-python实现
  12. 工地泥浆流出大量邵阳抽泥浆罐车清理路面泥巴
  13. 3w最简单led灯电路图_怎么选择自己合适的LED驱动IC?(十大LED驱动IC典型应用电路图)...
  14. 谷歌google bard vs chatgpt给我的最大感受,速度真快,注册简单,多种答案提供。。。
  15. 微信开发:springboot接入微信公众号
  16. Textstudio 应用程序无法正常启动0xc000007b
  17. 放弃文华财经,自己编程实现期货程序化交易
  18. AP6255蓝牙语音功能的实现
  19. CRM系统五大技巧集成Excel为销售流程赋能
  20. jqweui Toast

热门文章

  1. 服务器中毒怎么办,服务器中毒是什么导致的?
  2. Win10关闭wacom长按右键
  3. 迟绑定早绑定,迟早都要绑定
  4. No.62-HackTheBox-windows-Chatterbox-Walkthrough渗透学习
  5. long long,long,int
  6. 【贪心算法】空酒瓶换酒问题
  7. 【Opencv】基于Opencv和PCV两种方法的Harris 角点检测与匹配
  8. ORA-00933: SQL 命令未正确结束
  9. 梅林固件一线双拨设置方法
  10. 【杂谈】做一个不被开发鄙视的测试工程师