首页 > TAG信息列表 > P1233

【LG P1233】木棍加工

前置知识——最长上升子序列 什么是最长上升子序列? 就是给你一个序列,请你在其中求出一段不断严格上升的部分,它不一定要连续。当 \(a_j<a_i(j<i)\) 且 \(f_j+1>f_i\) 时,\(f_i=f_j+1\)。 对于每一个数,他都是在可以接下去的中,从前面的最优值 \(+1\) 转移而来。通俗的来说,你肯定就是在

P1233 木棍加工

Miku 很简单的线性dp 或者说不用dp 有两维,随便按照一维降序排个序,就成了个固定顺序的一维问题了。 直接\(O(n^2)\)贪心划分不下降子序列或者说运用dilworth定理,求最长上升子序列 贪心更快诶,可能是因为continue的多? dp #include<iostream> #include<cstdio> #include<algorithm> #

洛谷P1233 木棍加工

原题 题目描述 一堆木头棍子共有n根,每根棍子的长度和宽度都是已知的。棍子可以被一台机器一个接一个地加工。机器处理一根棍子之前需要准备时间。准备时间是这样定义的: 第一根棍子的准备时间为1分钟; 如果刚处理完长度为L,宽度为W的棍子,那么如果下一个棍子长度为Li,宽度为Wi,并且满足

洛谷P1233 木棍加工

原题 题目描述 一堆木头棍子共有n根,每根棍子的长度和宽度都是已知的。棍子可以被一台机器一个接一个地加工。机器处理一根棍子之前需要准备时间。准备时间是这样定义的: 第一根棍子的准备时间为1分钟; 如果刚处理完长度为L,宽度为W的棍子,那么如果下一个棍子长度为Li,宽度为Wi,并且满足

P1233-木棍加工

1 #pragma GCC optimize("Ofast") 2 #include <bits/stdc++.h> 3 #define maxn 13003 4 #define _for(i,a,b) for(int i = (a);i < b;i ++) 5 typedef long long ll; 6 using namespace std; 7 8 inline ll read() 9 {10 ll ans = 0;11 char ch

洛谷P1233 木棍加工【单调栈】

题目:https://www.luogu.org/problemnew/show/P1233 题意: 有n根木棍,每根木棍有长度和宽度。 现在要求按某种顺序加工木棍,如果前一根木棍的长度和宽度都大于现在这根,那加工这一根就不需要准备时间,否则需要1分钟准备时间。 问最少的准备时间。 思路: 现在题目要同时维护两个单调不升序