poj 1065

POJ1065 POJ1065–贪心问题 目录POJ1065--贪心问题一、题目链接二、题目内容三、题意拆解四、解题思路五、参考代码 一、题目链接 题目来源–POJ1065 二、题目内容 There is a pile of n wooden sticks. The length and weight of each stick are known in advance. The sticks are to be processed by a woodworking machine in one by one fashi 阅读详情

帮可爱的木棍排排序~(≧▽≦)/~啦啦啦
给你n对数,代表每个木棍的长度和质量,要求找出k段序列,使得每一段序列中,长度不下降,质量不下降,请输出最小k值
O(∩_∩)O哈!
很明显,要求最长上升子序列
是吗? ?_?
我们带着疑问来分析一下
O(∩_∩)O好的
首先把长度按照单调递增排一排序,然后我们只需要求出wei的k值就好啦
(^o^)/YES!
然后就要求wei的最小不下降序列数,感觉如果直接求复杂度很高>o<
那么换个思路
我们来求最长下降子序列,它的长度就是最小k值
(这是显然的,你自己YY吧~(≧▽≦)/~啦啦啦)


代码


#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int maxn=5000+10;
int cas,n,f[maxn];
struct stick{
    int len,wei;
}s[maxn];
bool cmp(stick a,stick b){
    return a.len==b.len ? a.wei<b.wei : a.len<b.len;
}
int main(){
    cin>>cas;
    while(cas--){
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%d%d",&s[i].len,&s[i].wei);
        sort(s+1,s+n+1,cmp);//把长按照升序排列,然后在重量所组成的序列中找上升子序列 
        memset(f,0,sizeof(f));
        s[0].wei=0x3f3f3f3f;
        for(int i=1;i<=n;i++)
            for(int j=0;j<i;j++)
                 if(s[j].wei>s[i].wei)
                    f[i]=max(f[i],f[j]+1);
        int ans=1;
        for(int i=1;i<=n;i++)
            ans=max(ans,f[i]);
        cout<<ans<<endl;
    }
    return 0;
}

by >o< neighthorn

POJ 1065-Wooden Sticks 贪心问题 <br />题目来源: http://acm.pku.edu.cn/JudgeOnline/problem?id=1065<br /> <br /> <br />解题报告: <br /> <br />本题采用贪心算法, 先从一堆sticks中找到长度最小的stick, 对长度相等的, 找到weight最小的,  找到后, 设长度为l, 重量为w, 然后, 从剩下的sticks中找到长度、重量都大于等于l和w的sticks中长度及重量最小的stick,再依次找下去,如果不存在,则就直接找长度、重量最小的sti 阅读详情

相关推荐

算法分析解题报告poj1065

用贪心算法解决POJ 1065的木棍处理问题

POJ 1065 Wooden Sticks

思路: 排序后依次进行贪心选择; 1 #include<iostream&gt; 2 #include<algorithm&gt; 3 using namespace std; 4 struct node { 5 int l, w; 6 bool isUsed; 7 }nodes[5000];//木棍数组 8 bool cmp(const node&...

qq_43119424的博客 204

十五天学会Autodesk Inventor,看完这一系列就够了(七),工程图纸

不管哪种绘图软件,二维或三维绘图,最终均需要转换成工程图纸,才能交给现场人员进行制作,这是任一产品图都要经历的过程。那本章开始,我们一起看一下Inventor是如何实现工程图纸?

Crazydoubao的博客 4906

POJ1065-LIS&偏序集定理-Wooden Sticks

https://vjudge.net/problem/POJ-1065 给定你一些木材,每次进行加工的时候 x1,y1 x2,y2 如果满足 x1<=x2&&y1<=y2 ,那么就不用重开 否则就得重开,重开一次费一秒,问你最少的花费是多少。 根据 偏序集定理, 把 x升序排之后 求他的 y的最长严格递减子序列就行。。 http://blog.youkuaiyun.com/acdreamers

天与云与山与水 266

告别SquareLine!用免费的NXP GUI-Guider为海思3516AV300开发LVGL界面(附完整移植流程)

本文详细介绍了如何利用免费的NXP GUI-Guider工具为海思Hi3516AV300开发LVGL界面,包括环境配置、代码移植和性能优化等全流程实战指南。特别针对二维码组件缺失等常见问题提供解决方案,帮助开发者零成本构建高效嵌入式GUI系统。

weixin_28292761的博客 415

从XSA到Linux应用:Petalinux与Vitis的嵌入式开发全流程解析

本文详细解析了从XSA文件到Linux应用的嵌入式开发全流程,重点介绍了Petalinux与Vitis工具链的使用技巧和实战经验。通过XSA硬件描述、Petalinux工程搭建、系统镜像优化及Vitis开发配置等关键步骤,帮助开发者高效完成ZYNQ平台开发,解决常见问题并提升开发效率。

weixin_29195217的博客 191

POJ 1065 Wooden Sticks / hdu 1257 最少拦截系统 DP 贪心

参考链接:http://blog.youkuaiyun.com/xiaohuan1991/article/details/6956629 (HDU 1257 解题思路一样就不继续讲解) POJ 1065题意:给你n个木块,分别给出其长度和重量,然后要对这些木块进行加工,如果木块1的长度和重量都不大于木块2,         那么这两个木块可以放在一起加工,从而只用花费1个时间单位。问要如何进行加工从而能...

weixin_34310785的博客 181

【HCIP-AI 进阶之路(一)】零成本白嫖算力,7天速通华为人工智能资深开发者认证

《HCIP-AIEIDeveloper认证备考指南》摘要:本文深度解析华为HCIP-AI(H13-331)认证考试要点,涵盖考试大纲、评分标准及备考策略。重点剖析昇腾AI全栈架构,包括达芬奇架构核心计算单元(Cube/Vector/Scalar Unit)和四大层级关系(芯片-CANN-框架-应用)。针对无硬件资源的开发者,提供MindSpore CPU版、ModelArts免费算力和沙箱实验室三种零成本实践方案。文章强调该认证对国企/华为生态企业求职者的价值,并指出多选题是主要失分点。下篇将聚焦计算机视觉

2301_82049134的博客 1181

POJ1065 Wooden Sticks 动态规划 贪心

本题目用二分也可以解,我记得二分大概需要几百毫秒左右,但是用DP效率更高些,一般时50毫秒左右,DP的思想与上升子序列类似,但思路需要做一个变换。

qq_53038151的博客 198

解锁 STP 与 SOLIDWORKS 转换密码:工具及迪威在线转换秘籍

STP 文件能够完整地记录 3D 模型的几何形状、尺寸、公差、材料属性等丰富信息,无论是简单的机械零件,还是复杂的装配体,都能精准呈现。而在线转换以迪威模型为例,凭借便捷性、高效性和安全性,为广大 3D 专业技术人员和学生党在无需安装额外软件的情况下,轻松实现格式转换提供了有力支持。在实际工作和学习中,可根据自身具体情况灵活选择合适的转换方式,以确保 3D 设计工作流程的顺畅进行,让创意在不同格式间自由流动并绽放光彩。在 3D 设计与建模的广袤世界里,不同格式文件间的转换常常是连接创意与实现的关键桥梁。

技术说明博主 3444

C#实现低通和高通滤波算法

低通滤波器允许通过低于某个截止频率的信号成分,并且抑制高于该频率的成分。而高通滤波器则允许通过高于某个截止频率的信号成分,并抑制低于该频率的成分。巴特沃斯滤波器是一种对称的滤波器,具有平坦的幅度响应和最小的群延迟。低通和高通滤波是数字信号处理中常用的滤波技术,用于滤除或增强信号中的特定频率成分。在本篇文章中,我们将使用C#编程语言来实现低通和高通滤波算法。以上就是使用C#实现低通和高通滤波算法的示例代码。你可以根据自己的需求调整截止频率和采样率,将这些代码应用于你的项目中。是滤波器的截止频率,

XisVisual_Basic的博客 1273

POJ1065+POJ3636

POJ 1065 + POJ 3636

Steve Guo 577

RK3568平台(camera篇) mipi csi接口

MIPI联盟,即移动产业处理器接口(Mobile Industry Processor Interface 简称MIPI)联盟。MIPI(移动产业处理器接口)是MIPI联盟发起的为移动应用处理器制定的开放标准和一个规范。MIPI是差分串口传输,速度快,抗干扰。主流手机模组现在都是用MIPI传输,传输时使用4对差分信号传输图像数据和一对差分时钟信号;MIPI摄像头有三个电源:VDDIO(IO电源),AVDD(模拟电源),DVDD(内核数字电源),不同sensor模组的摄像头供电不同。

weixin_49303682的博客 5344

POJ 1065

http://poj.org/problem?id=1065 题目的大体意思就是给一些木头长l,重w,有一个机器,如果切割这些木头的话,在i后面切割的i+1根木头满足长度和重量都要大于等于前一根则不需要花费时间,求最少的花费时间 一个贪心加动规吧,不是很难的想法 1 #include <stdio.h&gt; 2 #include <string.h&gt; ...

A1823085974的博客 224

基于MATLAB的多无人机多任务调度算法——CBBA带时间窗

本文将介绍基于MATLAB的CBBA算法,并对其进行改进,加入时间窗概念,以提高多无人机系统的调度效率和性能。时间窗用于限定任务的执行时间范围,以避免任务执行时间过长或过短导致的问题。具体而言,我们为每个任务设置一个允许的最早开始时间和最晚结束时间,并在任务分配的过程中考虑这些时间约束。在多无人机系统中,需要将若干个任务分配给不同的无人机完成,以实现高效的任务执行。以上是关于基于MATLAB的多无人机多任务调度算法CBBA带时间窗的简要介绍和源代码实现。多无人机系统的调度问题。

BUG?不存在的! 1896

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

poj1065

写了下DP里的poj1065,发现并没有搞懂最好的解法,解法如下(以后在学吧),自己的贪心O(N2)也水过. 题目的确需要稍加思考,这道题的要求其实是将所有stick分为x个不下降子序列( Ai x的最小值其实等于按l递增排序后stick按w最长下降子序列的长度L,证明如下: 若x 鸽笼原理,必然有两个或两个以上的下降子序列L中的元素(b > a)被按顺序放到同一个不下降子

qq_36876305的博客 242

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

POJ 1065 学习写法

参照了http://www.hankcs.com/program/cpp/poj-1065-wooden-sticks.html 代码写得很简洁 #include<iostream&gt; #include<cstdio&gt; #include<algorithm&gt; #include<cstring&gt; #include<funct...

aduqw1129的博客 112

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

POJ 1065 Wooden Sticks 【贪心】

题目链接 题意 给n个整数对,定义数对间的大于关系是(w1,l1)≤(w2,l2)↔w1≤w2andl1≤l2,求用这些数对最少能组成几组非递减序列 分析 LIS的变形,但考虑到原来给的这些数对并没有顺序,可以随便选择,因此没有必要用DP求LIS。可以倒序排序(先按第一个数排序,再按第二个数排序)后,贪心,即从左到右遍历,选择当前还没有被选择的数对中的最小...

babao9492的博客 126

poj1065 贪心

如题:http://poj.org/problem?id=1065 Wooden Sticks Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 19547   Accepted: 8246 Description There is a pile of n wooden

zht的专栏 442

poj_1065 Wooden Sticks

题目链接:http://poj.org/problem?id=1065   //C++代码 #include #include using namespace std; struct Stick{ int l,w; bool flag; bool operator <(const Stick a) const{ if(l==a.l) return w<a.w; return l

永恒国度 670

设置优先级 POJ 1065 Wooden Sticks

POJ 1065题目大意如下: 给出N段木头的数据,每段木头的数据表示形式为:(L,W)。表示的是木头的长度和质量,但是有一个要求(题目我也没有看太懂==,只解释一下大致意思),如果前一段木头数据的字典序小于之前的木头数据,就会花费一些时间。现在给出一些木头的数据,要你给出一个方案,使得花费的时间最少。 这个题目其实很简单,书上布置的这个作业要求用DP方法,但是今天做这个题的时候,并没有想出D

kornberg_fresnel的博客 360

POJ 1065(贪心)

题目链接   http://poj.org/problem?id=1065  题目意思非常简单,有一堆方木需要处理,处理准备时间如下:第一块方木需要时间为1;如果当前处理方木的长宽都大于等于前一块方木,那么准备时间为0。 此题wrong answer了一次,主要是先前的思路是错误的。先前的想法是,按照l进行排序,然后再统计w的逆序个数;同时按照w排序,再统计l逆序的个数。最

wrong_answer的专栏 469

poj1065(单调递增最长子序列变形)

题目链接:poj1065

no pains,no gains 931

poj 1065 贪心

类似于poj1328. //============================================================================ // // > File : poj1065.cpp // > Author : flowertree // > Time : 2015

233
上一篇: poj 1836
下一篇: XOJ 4.树的构造
NeighThorn
博客等级 码龄11年 20粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值