贪心算法之木棍问题

2023-05-16

问题 H: 木棒

时间限制: 1 Sec
内存限制: 32 MB
提交: 147
解决: 60
提交 状态

题目描述

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

输入

输入包含多组测试数据。输入的第一行是一个整数T,表示测试数据的个数。
每个测试例两行:
第一行是一个整数n(1<=n<=5000),表示有多少根木棒;
第二行包括n*2个整数,表示了l1,w1,l2,w2,l3,w3,...,ln,wn,这些数均不大于10000,其中li和wi表示第i根木棒的长度和重量。

输出

输出以分钟为单位的最少准备时间。

样例输入

3 5 4 9 5 2 2 1 3 5 1 4 3 2 2 1 1 2 2 3 1 3 2 2 3 1

样例输出

213
#include<algorithm>
#include <cstdio>
using namespace std;

struct stick
{
	int l;
	int w; 
}a[100];
int compare(stick a,stick b)
{
	if(a.l==b.l)
	{
		return a.w<b.w;
	}
	else
		return a.l<b.l;
}
int main()
{  
	int times,n,flag,sum,i,j;
	scanf("%d",×);
	while(times--)
	{   
		sum=0;
		scanf("%d",&n);
		for(i=0;i<n;i++)
		{
			scanf("%d%d",&a[i].l,&a[i].w);
		}
		sort(a,a+n,compare);
		for(i=0;i<n;i++)
		{
			if(a[i].w)//就是a[i].w不等于零的意思。
			{
				sum++;
				flag=a[i].w;
					for(j=i+1;j<n;j++)
					{
						if(a[j].w>=flag)
						{
							flag=a[j].w;
							a[j].w=0;
						}
					}
			}//这些代码意思是如果排序后啊【i+1】.w>a[i].w的话就直接跳过的意思,
			

		}
		printf("%d\n",sum);

	}
	
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

贪心算法之木棍问题 的相关文章

  • Python 生成器 (通俗讲解)

    一 生成器的本质 生成器是含有yield语句 xff08 或yield表达式 xff09 的函数所返回的对象 也就是说 xff0c 要创建一个生成器 xff0c 我们首先要定义一个函数 xff0c 该函数内将使用yield表达式或yield
  • (三)MNN与Opencl联合编译

    在MNN与opencl进行联合编译中 xff0c 需要注意一些事项 xff1a 1 在MNN中cmakelists进行修改后 2 在source backend opencl core runtime中OpenCLWarpper cpp中文
  • Linux文件系统操作命令

    一 目录类命令 ls 查看文件或目录的工具 xff0c 列出目录 用法 xff1a ls 选项 文件 选项 l 以长格式显示目录下的内容列表 输出的信息从左到右依次包括文件名 xff0c 文件类型 权限模式 硬连接数 所有者 组 文件大小和
  • Windows 11安装安卓子系统步骤

    1 win11开启虚拟平台 如下图 xff0c 进入设置界面 xff0c 应用 可选功能 更多 Windows 功能 勾选 Hyper V 和 虚拟机平台 xff0c 重启系统 2 下载安装子系统 打开地址 xff1a https stor
  • linux系统使用docker部署gitlab

    1 安装docker docker安装见我之前的文章 xff1a http t csdn cn H4wAm 2 拉取gitlab镜像 gitlab ce社区版最新版 docker pull gitlab gitlab ce latest g
  • ubuntu 18.10安装ssh软件

    ubuntu 18 10 ssh软件安装步骤 xff1a 输入 Ctrl 43 Alt 43 T 打开命令终端 xff1b 输入 sudo apt get update 更新源列表 xff1b 在输入命令后 xff0c 显示的是输入密码操作
  • Clion(2023)+QT(6.5)+cmake+vcpkg+Opencv(4.7)环境安装与使用

    用习惯了Clion xff0c 智能提示很棒 xff0c 就不想用Qt自带的creator编辑器 xff0c 并且新版的Clion支持编辑ui文件 于是搜罗了一下教程搭配一下环境安装 xff0c 其实最重要的还是cmakelist的编写 Q
  • QPushButton样式设置

    1 无样式的按钮 2 改变字体颜色 color span class token operator span ff0000 span class token punctuation span 3 改变字体 font span class t
  • linux进程间通信--共享内存(POSIX 版本)

    linux进程间通信 共享内存 POSIX 版本 System V共享内存模型使用的是key和标识符 xff0c 这与标准的UNIX I O模型使用文件名和描述符的做法不一致 这种差异导致System V共享内存段需要一整套全新的系统调用和
  • 软件工程 瀑布模型、原型模型、喷泉模型和V模型的优缺点及适用场景

    一 瀑布模型 瀑布模型 xff08 Waterfall Model xff09 是一个项目开发架构 xff0c 开发过程是通过设计一系列阶段顺序展开的 xff0c 从系统需求分析开始直到产品发布和维护 xff0c 每个阶段都会产生循环反馈
  • Ubuntu18.04 配置 Xrdp 远程桌面服务

    Ubuntu18 04 配置 Xrdp 远程桌面服务 Ubuntu18 04 配置 Xrdp 远程桌面服务安装桌面环境安装 Xrdp配置 Xrdp防火墙配置 1 连接远程桌面问题解决 2 参考链接 Ubuntu18 04 配置 Xrdp 远
  • linux系统中同时开启wifi与热点的办法

    如果你在linux操作系统中有同时开启wifi与热点的需求 xff0c 请按下面的办法操作 目前开启热点后会自动关闭wifi 同时开启wifi与热点的办法 1 准备工作 查看是否支持AP模式 iw list 找到这个 xff0c 表示支持A
  • Couldn't find executable named joy_node below /opt/ros/kinetic/share/joy解决方法

    最近想用joy node这个节点 xff0c 然后就通过 sudo apt get install ros kinetic joy 去安装 xff0c 然后运行rosrun joy joy node时候一直错误显示Segmentation
  • Android P中的AVB2.0校验

    avb校验功能主要是由external avb libavb库实现的 xff0c 该库主要完成的工作包括各个分区镜像的校验 xff0c 签名验证 xff0c 以及vbmeta数据的解析 xff0c 包括了各种flags的处理以及dm ver
  • linux:nohup命令用法

    启动示例 nohup java jar infos 1 0 0 jar gt dev null 2 gt amp 1 amp 这句命令的含义是 xff1a 使用nohup来启动 xff0c 并将日志输入到黑洞目录以实现不记录nohup ou
  • cas进行sso单点登录,解决重定向url中带 ;jsessionid=xxx,url路径不合法的问题

    cas进行sso单点登录时 解决重定向url中带 jsessionid 61 xxx url路径不合法的问题 Servlet3 0规范中的允许你定义JSESSIONID是存储在cookie中还是URL参数中 如果会话ID存储在URL中 xf
  • 将Sublime Text 3 打造成 C/C++编译器

    本文介绍Sublime Text 3的C C 43 43 开发环境搭建 xff0c 包括MinGW的安装 xff0c gcc运行c语言 xff0c g 43 43 运行c 43 43 语言 xff0c 在sublime中运行以及在cmd中运
  • 201809-3 元素选择器(100分)

    1 首先标签选择器和id选择器是很简单的 xff0c 只需要注意标签大小写不敏感 xff0c id大小写敏感就可以拿到50分了 2 难的是后代选择器 xff0c 按照题目给的思路 xff0c 先找到所有满足最后一个选择器的元素列表 xff0
  • CMFCShellTreeCtrl在win7下打开家庭组断言BUG

    如图中所示 打开家庭组的时候会出现断言错误 解决方法 重新添加一个类 继承CMFCShellTreeCtrl 然后重写 HRESULT CMyShellTree EnumObjects HTREEITEM hParentItem LPSHE

随机推荐