Task(二维关键字不同且有向的贪心思想(有坑点,反向求会wa。。))

c++工厂机器安排(贪心) 题目为: Today the company has m tasks to complete. The ith task need xi minutes to complete. Meanwhile, this task has a difficulty level yi. The machine whose level below this task’s level yi cannot comp... 阅读详情


Link:http://acm.hdu.edu.cn/showproblem.php?pid=4864


Task

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4606    Accepted Submission(s): 1207


Problem Description
Today the company has m tasks to complete. The ith task need xi minutes to complete. Meanwhile, this task has a difficulty level yi. The machine whose level below this task’s level yi cannot complete this task. If the company completes this task, they will get (500*xi+2*yi) dollars.
The company has n machines. Each machine has a maximum working time and a level. If the time for the task is more than the maximum working time of the machine, the machine can not complete this task. Each machine can only complete a task one day. Each task can only be completed by one machine.
The company hopes to maximize the number of the tasks which they can complete today. If there are multiple solutions, they hopes to make the money maximum.
 

Input
The input contains several test cases. 
The first line contains two integers N and M. N is the number of the machines.M is the number of tasks(1 < =N <= 100000,1<=M<=100000).
The following N lines each contains two integers xi(0<xi<1440),yi(0=<yi<=100).xi is the maximum time the machine can work.yi is the level of the machine.
The following M lines each contains two integers xi(0<xi<1440),yi(0=<yi<=100).xi is the time we need to complete the task.yi is the level of the task.
 

Output
For each test case, output two integers, the maximum number of the tasks which the company can complete today and the money they will get.
 

Sample Input
  
1 2 100 3 100 2 100 1
 

Sample Output
  
1 50004
 

Author
FZU
 

Source
 


题意:N台机器,M个任务,机器和任务分别有一个time值,和level值。每台机器上最多只能运行一个任务,而且机器的time值和level值要分别大于等于该任务的值才能做该任务。完成一个任务会获得(500*time+2*level)的价值,求对于给出的机器和任务,能获得的最大价值。

编程思想:贪心。题目很特别的给出了获得金钱的计算公式为500*x+2*y,y<=100,也就是说y怎么样也没有x变化1价值增加的多,所以我们要优先保护x,所以在二级排序的时候先以x,再y,这样就可以在保证个数最大的情况下价值最大了,整个过程还是简单贪心,所以可以按任务时间从大到小排序,然后每个任务找出大于等于该任务难度且与难度最接近(sett.lower_bound(task[i].yi)函数)的机器完成该任务。


AC code:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue>
#include<map>
#include<stack>
#include<vector>
#include<set>
#define LL long long
#define MAXN 1000010
using namespace std;
struct node{
	int xi;//时间 
	int yi;//級別 
	bool operator < (const node &b)const
	{
		if(xi!=b.xi)
			return xi>b.xi;
		else
			return yi>b.yi;
	}
}machine[MAXN],task[MAXN];

multiset<int>sett;
multiset<int>::iterator it;
LL ans;
int cnt;
int main()
{
//	freopen("D:\\in.txt","r",stdin);
	int T,i,j,n,m;
    while(~scanf("%d%d",&n,&m))
    {
		sett.clear();
		for(i=1;i<=n;i++)
		{
			scanf("%d%d",&machine[i].xi,&machine[i].yi);
		}
		for(i=1;i<=m;i++)
		{
			scanf("%d%d",&task[i].xi,&task[i].yi);
		}
		sort(machine+1,machine+n+1);
		sort(task+1,task+m+1);
		j=1;
		ans=0;
		cnt=0;
		for(i=1;i<=m;i++)
		{
			while(j<=n&&machine[j].xi>=task[i].xi)
			{
				sett.insert(machine[j].yi);
				j++;
			}
			if(sett.empty())
			{
				continue;
			}
			it=sett.lower_bound(task[i].yi);
			if(it!=sett.end())
			{
				ans+=500*(task[i].xi)+2*(task[i].yi);
				cnt++;
				sett.erase(it);
			}
		}
		printf("%d %I64d\n",cnt,ans);
	}
  	return 0;
}


【信息科学与工程学】【数据科学】数据科学领域 第六篇 算法设计 07 堆、栈、表、矩阵、集合、队列、数组、字符串、树、图、动态规划、结构体、元组的算法01 当前段必须包含所有字符的最后出现位置。1. 字符串分割成最多片段2. 基因序列功能域划分3. 文本段落划分4. 音频声道分离5. 图像色彩分区6. 社交网络社群划分7. 蛋白质结构域8. 音乐乐章分段9. 代码模块划分10. 章节划分特征:一次扫描,贪心确定边界。 阅读详情

相关推荐

贪心算法(船只载货问题)

贪心算法,关于船只载货的问题算法。对于处理一维下料、二维下料、甚至三维都有一定的启发性。

工厂机器安排(Java)

Today the company has m tasks to complete. The ith task need xi minutes to complete. Meanwhile, this task has a difficulty level yi. The machine whose level below this task’s level yi cannot complete this task. If the company completes this task, they will

wowhhhgd的Blog 673

FFTW库安装与使用(3.3.5版本)

FFTW库安装与使用一、FFTW库介绍与下载二、FFTW库安装三、FFTW库测试 一、FFTW库介绍与下载   FFTW ( the Faster Fourier Transform in the West) 是一个快速计算离散傅里叶变换的标准C语言程序集,其由MIT的M.Frigo 和S. Johnson 开发。可计算一维或多维实和复数据以及任意规模的DFT,且运行速度比Eigen和opencv自带的FFT库函数快10倍以上。   下载链接:http://www.fftw.org/install/wind

Jhon_ranble的博客 2万+

工厂机器安排(贪心算法)

题目来源:HDOJ Today the company has m tasks to complete. The ith task need xi minutes to complete. Meanwhile, this task has a difficulty level yi. The machine whose level below this task’s level yi cannot complete this task. If the company completes this task,

weixin_48345739的博客 2120

保姆级教学:从0搭建微信小程序SpringBoot+Vue(一)

目标:实现一个微信小程序从后端数据库MySQL获取的商品展示页。 框架:后端采用SpringBoot,前端采用Vue,数据库MySQL。 部署工具:IntelliJ IDEA 2024.2专业版+HbuilderX+Node+微信开发者工具,jdk1.8已安装

weixin_44545610的博客 4925

AUTOSAR NvM 实车故障深度剖析:车载存储问题快速定位与工程解决方案

软件配置与代码逻辑无问题时,排查底层驱动与ECU硬件,步骤如下:底层驱动排查:排查Fls/Eep驱动配置,是否适配目标MCU(如TC397、S32K),编程/擦除/读取时序是否合理;检查Fls/Eep驱动错误处理逻辑,是否未处理Flash编程失败、读取错误等异常;验证Flash高速编程模式是否启用,是否能提升写入/读取速度;排查MemIf层配置,是否正确对接NvM与Fls/Eep驱动,是否存在调度延迟。

getusushu的博客 78

二维贪心问题

二维贪心问题常见于数组排序等操作中,它往往要求所得结果同时满足两个方面的条件,这两个条件相互之间存在某种关联,可以相互影响。如果仅在一个维度上应用贪心算法很容易顾此失彼,难以得出正确答案。

m0_72379992的博客 524

深度学习笔记——前向传播与反向传播、神经网络(前馈神经网络与反馈神经网络)、常见算法概要汇总

本文简要介绍深度学习的前向传播与反向传播,以及前馈神经网络与反馈神经网络。

haopinglianlian的博客 3042

二、stl ,模拟,贪心等 [Cloned] R - 贪心

原题: Today the company has m tasks to complete. The ith task need xi minutes to complete. Meanwhile, this task has a difficulty level yi. The machine whose level below this task’s level yi cannot comp...

npuyan的博客 307

威纶通触摸屏与S7-1200以太网通信的具体方法和步骤(非常详细)

威纶通触摸屏与S7-1200以太网通信的具体方法和步骤(非常详细)

Robot_PLC_HMI_Automation 1万+

使用亚组分析进行子组分析并可视化森林图 - R语言

通过亚组分析和森林图的结合,我们可以更好地理解不同子组之间的差异和效果大小。当然,在实际应用中,还需要考虑多种因素,如样本量、异质性等,以得到更准确的结果和结论。每个森林图中的水平线代表了每个子组的效应估计,线的长度表示了该效应估计的置信区间。假设我们有一个包含研究对象的数据框(data frame),其中包括了治疗组和对照组的结果数据,以及一些可能的影响因素作为调整变量。在本例中,我们将比较两种不同的治疗方法(A和B)对结果变量的影响,并调整了一个额外的变量。是结果变量和对照组变量的列名。

2301_79326857的博客 1234

贪心算法(两个维度维权问题)

贪心算法(两个维度维权问题)1.分发糖果2. 根据身高重建队列 1.分发糖果 贪心算法(两个维度维权问题) 1.先从左向右遍历,当右面孩子的评分大于左面孩子的,右面孩子糖果数等于左面孩子糖果数加一。 2.再从右向左遍历,只要左边比右边大,此时左边的糖果(符合比它左边大)和右边糖果数加一二者的最大值。这样才符合它比它左边的大,也比它右边的大。 class Solution { public int candy(int[] ratings) { int[] candyVec = n

weixin_53310322的博客 870

代谢组数据分析(三十一):空间代谢组学分析从数据加载到通路分析的流程解析

空间代谢组学是一种先进的技术,能够在组织切片上以高分辨率检测代谢物分布,为理解生物代谢过程提供新视角。其分析流程包括数据获取、预处理、代谢物注释、差异表达分析、可视化、通路分析、聚类分析及空间相关代谢物分析等关键步骤。这些步骤帮助研究人员从海量数据中提取有价值信息,揭示代谢物的空间分布规律,发现潜在生物标志物,探索代谢通路调控机制。例如,SpaMTP等工具为全流程分析提供了强大支持,助力研究人员高效处理数据,深入理解代谢过程,为生物学研究和临床应用提供重要依据。

专注生信领域 916

【算法设计与分析】贪心算法

一、贪心算法 在求最优解问题的过程中,依据某种贪心标准,从问题的初始状态出发,直接去求每一步的最优解,通过若干次的贪心选择,最终得出整个问题的最优解,这种求解方法就是贪心算法。 从贪心算法的定义可以看出,贪心算法不是从整体上考虑问题,它所做出的选择只是在某种意义上的局部最优解,而由问题自身的特性决定了该题运用贪心算法可以得到最优解。 如果一个问题可以同时用几种方法解决,贪心算法应该是最好的选择之一。 二、贪心算法的理论基础 贪心算法是一种在每一步选择中都采取在当前状态下最好或最优的选择,希望得到结

a765528534的博客 685

FFDNet-pytorch版本代码训练教程

该文章为FFDNet-pytorch版本代码训练教程,抓紧订阅学习!尽早入门发论文哦!

假技术Po主 1506

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Codeforces 798D Mike and distribution(二维贪心)

D. Mike and distribution time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Mike has always been thinking abou

yasolx的博客 1643

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

HDU 4864(贪心)

TaskTime Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Problem DescriptionToday the company has m tasks to complete. The ith task need xi minutes to complete. Meanwhile...

niuniu0205的博客 270

STM32F407中文手册

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

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

二维装箱贪心算法matlab,2018搜狐编程题-贪心算法-二维装箱问题

题目描述一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1*1, 2*2, 3*3, 4*4, 5*5, 6*6。这些产品通常使用一个 6*6*h 的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。输入输入文件包括几行,每一...

weixin_36272649的博客 1084

贪心策略 HDU - 4864 Task

DescriptionToday the company has m tasks to complete. The ith task need xi minutes to complete. Meanwhile, this task has a difficulty level yi. The machine whose level below this task’s level yi canno...

笑彪夕的博客 859

HDU 4864 Task 贪心 难题

D - Task Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u SubmitStatus Description Today the company has m tasks to complete. The ith task need xi minutes to complete. M

Katapeltes 709

Task

Problem A : Task From:HDU, 4864 Problem Description Today the company has m tasks to complete. The ith task need xi minutes to complete. Meanwhile, this task has a difficulty level yi. The mach

xuehuhu1的专栏 457

hdu 5073 Galaxy

Galaxy Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 323    Accepted Submission(s): 71 Special Judge Problem Description Good ne

浮躁的人,终究一事无成! 2189

hdu 4864 Task

Task Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2108    Accepted Submission(s): 536 Problem Description Today the company has

浮躁的人,终究一事无成! 1702

两个费用的贪心(HDOJ 4864)

Task Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7328    Accepted Submission(s): 1939 Problem Description Today the company

Eminem1147的博客 528

leetcode -- 621. Task Scheduler【贪婪算法 + 数学公式化 + 逻辑证明方式】

题目 Given a char array representing tasks CPU need to do. It contains capital letters A to Z where different letters represent different tasks.Tasks could be done without original order. Each task c

课桌 8842

task(贪心)

Task Problem Description Today the company has m tasks to complete. The ith task need xi minutes to complete. Meanwhile, this task has a difficulty level yi. The machine whose level below this task’

ljyanjy 656
上一篇: hdu4268 Alice and Bob(二维贪心的固定思想 STL的multiset的二分查找函数实现)
下一篇: Couple doubi(费马小定理或打表找规律+简单博弈)
林下的码路
博客等级 码龄12年 295粉丝 506原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林下的码路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值