Wooden Sticks

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 阅读详情

题目地址:

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19567

大概题意:

一个东西有两个属性值l和r,现在有一堆东西要使用他,分成几小堆使用,每小堆第一个使用需要1点消耗,但要求该小堆的后面使用的每一个东西的两个属性ll和rr都要比小于等于前一个(也就是ll<=l&&rr<=r),问你最少要花费多少点才能把所有东西都用完

这里用的是贪心,刚开始我很不理解这个正确性,后面想着想着就相同了(参考了这个人博客的样例http://blog.youkuaiyun.com/lishuhuakai/article/details/8117251)


上面所说的其实就是偏序关系,现在考虑一下贪心的正确性

定义A >= B为A.l>=B.l&&A.r>=B.r

如果这堆东西可以排成A>=B>=C...的顺序,那么答案很简单就是1,问题是会出现ABC..互相没有大小关系,通俗的说就是ABC不能互相包含的时候,那么三者肯定都各自需要一点消耗,那么以A为例,假如序列还存在a,b,c等被A包含着,那么a,b,c的关系又可能如ABC一样,那么关键问题来了A的下一个应该选谁?其实选谁都一样,因为这个点(例)a现在不选的,那么以后肯定要选a(BC顺便选a那是最好的情况,BC也遇到A的情形的话...循环想下去,最后肯定存在一个d点只能某D点选或者没有人选,没人选的话则必须花费一点消耗),...最后效果都一样

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <string>
#include <queue>
#include <cstdlib>
#include <algorithm>
#include <stack>
#include <map>
#include <queue>
#include <vector>

using namespace std;
const int maxn = 1e4+100;
const int INF = 0x3f3f3f3f;
#define pr(x)       cout << #x << " = " << x << " ";
#define prln(x)     cout << #x << " = " << x <<endl;
#define ll long long
struct Node{
	int l, r;
	bool operator < (const Node& rhs)const{
		return l > rhs.l || (l == rhs.l && r > rhs.r);
	}
}node[maxn];
bool vis[maxn];
int main(){
#ifdef LOCAL
    freopen("C:\\Users\\Administrator\\Desktop\\in.txt","r",stdin);
  //freopen("C:\\Users\\Administrator\\Desktop\\out.txt","w",stdout);
 #endif
    int n, t;
    scanf("%d", &t);
    while(t--) {
    	scanf("%d", &n);
    	for(int i = 0; i < n; ++i) {
    		scanf("%d%d", &node[i].l, &node[i].r);
    		vis[i] = 0;
    	}
    	sort(node, node+n);
    	int last = 0, num = INF, ans = 0, cnt = 0, st;
    	while(cnt < n) {
    		++ans;
    		num = INF;
    		st = last;
    		//prln(last);
    		last = 0;
    		for(int i = st; i < n; ++i) {
    			if(!vis[i]){
	    			if(num >= node[i].r) {
	    				num = node[i].r;
	    				++cnt;
	    				vis[i] = true;
	    			} else if(!last){
	    				last = i;
	    			}
    			}
    		}
		}    	
    	printf("%d\n", ans);
    }
    return 0;
}

WoodenSticks Wooden Stickes 问题 现有n 根木棒,已知它们的长度和重量。要用一部木工机一根根加工,该机器在加工过程中需要一定的准备时间,是用于清洗机器在,调整工具和模板。 木工机需要的准备时间如下: (1)第1根需要1分钟的准备时间 (2)加工了一根长为L,重量为w的木棒之后,接着加工一根长为L'(L<=L’),重w'(W<=W’),的木棒是不需要任何的准备时间的,否则需要1分种的准备时间。 给定n根木棒,找出最少的准备时间。 立即下载

相关推荐

贪心算法 WOODEN STICKS 实例代码

Problem DescriptionThere 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 fashion. It needs some time, called setup time, for the machine to prepare processing a stick. The setup times are as

Wooden Sticks(贪心)

题目描述 现有n根木棒,已知它们的长度和重量。要用一部木工机一根一根地加工这些木棒。该机器在加工过程中需要一定的准备时间,是用于清洗机器,调整工具和模版的。 木工机需要的准备时间如下: (1)第一根木棒需要1min的准备时间; (2)在加工了一根长为l ,重为w的木棒之后,接着加工一根长为l ’ (l ≤ l’ ),重为 w’ ( w≤w’)的木棒是不需要任何准备时间的,否则需要一分钟的准备时间。 给定n根木棒,找到最少的准备时间。 例如现在有长和重分别为(4,9),(5,2),(2,1),(3,5)和(1

qq_51772871的博客 722

PP-OCRv6 ONNX部署的官方和手搓方案

PP-OCRv6 基于全新设计的 PPLCNetV4 统一骨干网络,提供 tiny、small、medium 三档模型,分别面向端侧/IoT、移动端/桌面端、服务端场景。在内部多场景综合评估集上,PP-OCRv6_medium 相比 PP-OCRv5_server 识别精度提升 5.1%、检测精度提升 4.6%,同时 GPU 推理速度提升 2.37×;以仅 34.5M 参数的规模,精度超越 Qwen3-VL-235B、GPT-5.5 等大型视觉语言模型。

懒人的技术笔记 1899

课程笔记Wooden Sticks(贪心算法+动态规划)

解题思路 由于题目的要求是最少的准备时间,加工越来越长且越来越重的不需要等待时间,所以把木板按照长度进行排序,若长度相同按照重量排序,可以得到一个长度升序的木板数组。bool cmp(stick& a, stick& b) 排序后对数据进行分组处理,由于已经保证木板是按照长度升序排列的,接下来只要保证木板的重量是升序则不需要1分钟的准备时间,反之,总时长增加1 。那么就可以转换为...

qq_43656233的博客 849

ESP-IDF下载配合MQTT协议接入云平台实例

通过ESP-IDF下载环境搭建,结合MQTT协议实现设备与云平台通信,详解从配置到连接的完整流程,助力物联网应用开发。重点涵盖espidf下载和MQTT集成关键步骤。

weixin_28913879的博客 454

SAP SD POD 配置与 VLPOD 操作:3步解决发货10件开票7件的业务场景

本文详细解析了SAP SD POD功能在解决发货与开票数量差异中的应用,通过3步配置法实现精准匹配。重点介绍了POD核心逻辑、关键配置步骤及VLPOD操作技巧,帮助企业高效处理易损品运输等复杂场景,提升供应链管理效率。

weixin_30613343的博客 396

ACM刷题之HDU————Wooden Sticks

Wooden Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 17181    Accepted Submission(s): 7010 Problem Description There is a

小时的枫的博客 829

保姆级教程:在RK3568 Debian系统上搞定AIC8800 WiFi与蓝牙驱动(含固件路径与开机自启脚本)

本文提供在RK3568 Debian系统上配置AIC8800 WiFi与蓝牙驱动的保姆级教程,涵盖驱动移植、固件部署、开机自启脚本等关键步骤。通过详细的硬件连接指南、内核配置示例和常见问题解决方案,帮助开发者快速实现无线模块的全功能配置,特别适合嵌入式Linux开发者参考。

weixin_28684825的博客 380

【HPUoj】Wooden Sticks(贪心)

题目链接:点击打开链接 问题 F: Wooden Sticks 时间限制: 1 Sec 内存限制: 128 MB 提交: 1  解决: 1  状态 题目描述 Lialosiu要制作木棍,给n根作为原料的木棍的长度和重量。根据要求求出制作木棍的最短时间。 首先我们知道制作第一个木棍需要1分钟,若是接着要制作的木棍的重量和长度都不少于当前的木棍,那么就不需要

wyg1997 1184

【LDPC-7】LLR量化位宽对LDPC译码性能的影响分析——以最小和译码算法为例进行matlab仿真

最小和译码算法的步骤如下:最后译码结果如果满足或者完成所有迭代次数,则译码算法停止迭代,否则继续进行译码迭代操作。

FPGA/MATLAB学习教程/源码/项目合作开发 1471

推荐系统(一)概述

在互联网领域,推荐系统(Recommendation Systems)的应用非常广泛。在音视频方面,如抖音、快手、哔哩等;在电商平台方面,如京东、淘宝、拼多多等。推荐有助于帮助用户快速发现潜在感兴趣的内容(音视频、商品、新闻等信息流),从而提升用户体验,同时有助于提升商业效率。从本文开始,笔者将结合自身在信息流推荐领域的经验,通过系列文章对推荐系统展开介绍。

Jin_Kwok的博客 6084

POJ 1065 Wooden Sticks 【贪心】

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

babao9492的博客 127

高通平台WIFI学习-- WCN7851 三频 2X2 MIMO DBS HBS Wi-Fi 7介绍

WCN7851是支持Wi-Fi 7和蓝牙5.4的三频SoC芯片,具有以下核心特性:采用NSP334封装,支持2.4GHz/5GHz/6GHz三频段并发操作,最高速率达5.8Gbps;集成MU-MIMO、4096QAM调制技术,6GHz频段支持320MHz带宽;提供PCIe Gen3接口和低功耗设计,兼容多种无线标准。电气特性包括1.8V/1.2V可编程GPIO、76.8MHz时钟源要求,以及详细的射频性能参数。该芯片通过多链路操作和动态频率选择等先进功能,实现高性能无线连接。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 1278

zoj 1025 wooden sticks

<br />  这题是大黄dp分类里边的..想了好久..刚开始想的是,先把一个排序,然后每次按照第二个未排序的元素进行最长上升子序列的查找..一次查找一个,记录下路径..然后数出一共有多少个路径..但是之后发现这种方法好像不可取..因为这一次删掉的最长上升序列并不一定能满足使下一个最长(如果要想实现的话,还有点麻烦..)  最后发现其实在第一个元素排好序之后只需找出按照第二个元素的最长不上升子序列的长度就行..<br />因为第一个元素完全满足条件的情况下..第二个元素的最长不上升子序列的长度就一定是所需要

个人信息备份站。。 659

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Wooden Sticks(贪心)

Wooden Sticks. win the wooden spoon:成为末名。 题目地址:http://poj.org/problem?id=1065 There is a pile of n wooden sticks. a woodworking machine:木工机器。 setup time:启动时间。 my codes: #include<iostr...

banteng7670的博客 117

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

HDU 题目1051 Wooden Sticks

Wooden Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 11581 Accepted Submission(s): 4780 Problem Description There is a pile of

小寒 454

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

POJ 1065 Wooden Sticks

思路: 排序后依次进行贪心选择; 1 #include<iostream> 2 #include<algorithm> 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

ZOJ1025-Wooden Sticks

完整程序: #include<bits/stdc++.h> using namespace std; //ZOJ1025-Wooden Sticks贪心算法 #define maxN 5001 struct stick { int l; //木棒的长度 int w; //木棒的重量 }; stick data[maxN]; //存放所有...

kt1776133839的博客 320

HDOJ HDU 1051 Wooden Sticks

HDOJ HDU 1051 Wooden Sticks题目 点此查看 HDOJ HDU 1051 Wooden Sticks 分类 贪心 题意 用机器加工 n 个木棍 每个木棍都有 长度 和 重量 每次技巧调整需要 1 单位时间 (初始时 也需要 1 单位时间 ) 当 下一个 木棍 的质量的长度和质量都大于 上一个木棍时 机器不需调整 求 最少调整时间

Gy_1096440940的博客 404

poj 1065 Wooden Sticks

/* * poj 1064 Wooden Sticks 题目大意: 给定一系列木棍,每个木棍有两个属性长度l和重量w,这些木棍要放到某台机器中进行处理。 机器处理每个木棍前有一段时间的做准备工作,其规则如下: 1)处理第一条木棍前准备时间为1 2)如果后面处理的木棍的属性满足l'>l并且w'>w则无需准备,否则需要时间

baisung的专栏 509

hdu 1051 Wooden Sticks(贪心策略)

//hdu 1051 Wooden Sticks(贪心策略) /* 题意:有一堆n木棍。 每根的长度和重量都提前知道。 棒是由木工机床在一个接一个的方式处理。 它需要一些时间,启动时间,呼吁机器准备处理。 设置时间与清洁有关操作和改变机器的工具和形状。 给出了木工机床的安装时间如下: (a)第一根木棍设置时间是1分钟。 (b)后加工一根长度和重量w,机器将不需要设置时间一根长度l和重量w如果l <

u014068781的专栏 480
上一篇: Marked Ancestor
下一篇: 小备注
Vanguard-xf
博客等级 码龄12年 40粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值