小A与任务

链接:

https://ac.nowcoder.com/acm/contest/369/B

来源:牛客网

题目描述

小A手头有 \(n\) 份任务,他可以以任意顺序完成这些任务,只有完成当前的任务后,他才能做下一个任务

第 \(i\) 个任务需要花费 \(x_i\) 的时间,同时完成第 \(i\) 个任务的时间不能晚于\(y_i\) ,时间掌控者向小A提出了一个条件:如果完成第 \(i\) 个任务的时间本应是 \(t\) ,但小A支付 \(m\) 个金币的话,他可以帮助小A在$ t−m×z_i$ 时刻完成第 \(i\) 个任务, \(z_i\) 是时间参数,会在输入中给出

小A想按时完成所有任务,请你帮他制定一个花费金币最少的方案

注意:不能使得某个任务的花费时间小于 0 ,花费的金币可以不是整数

输入描述:

第一行一个整数 \(n\) ,表示小A的任务数量

接下来\(n\)行,每行三个整数,分别表示 \(z_i,x_i,y_i\)

输出描述:

一行一个实数,表示小A最少需要花费的金币数,四舍五入保留一位小数

备注:

\(1≤n≤2×10^5\)

\(1≤x_i,z_i≤3×10^3\)

\(1≤y_i≤10^5\)


日常做不出沙比题,哎,没救了

这种看起来可以贪心搞一搞的应该很容易看出来可以拿堆延迟操作的...

首先按\(y\)定操作顺序

然后把二元组\((res,cos)\)即任务\(i\)和它剩余可以买的时间丢到堆里,维护一个当前时间戳,当时间不够用时,在堆里买就行了,没用完的任务记得放回堆就可以了


Code:

#include <cstdio>
#include <queue>
#include <algorithm>
const int N=2e5+10;
#define yuucute 233
struct node
{
int z,x,y;
bool friend operator <(node a,node b){return a.y<b.y;}
}bee[N];
#define mp(a,b) std::make_pair(a,b)
std::priority_queue <std::pair<int,int> > q;
int n;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d%d%d",&bee[i].z,&bee[i].x,&bee[i].y);
std::sort(bee+1,bee+1+n);
int tim=0;double ans=0;
for(int i=1;i<=n;i++)
{
q.push(mp(bee[i].z,bee[i].x));
int res=bee[i].y-tim;
if(res<bee[i].x)
{
bee[i].x-=res;
while(yuucute)
{
int re=q.top().second,cos=q.top().first;
q.pop();
if(bee[i].x>re)
{
bee[i].x-=re;
ans+=1.0*re/(1.0*cos);
}
else
{
ans+=1.0*bee[i].x/(1.0*cos);
re-=bee[i].x;
q.push(mp(cos,re));
break;
}
}
tim=bee[i].y;
}
else tim+=bee[i].x;
}
printf("%.1lf\n",ans);
return 0;
}

2019.2.15

牛客练习赛 小A与任务 解题报告的更多相关文章

  1. 牛客练习赛 小D的Lemon 解题报告

    小D的Lemon 题意 已知 \[ g(x)=\left\{\begin{matrix} 1&,x=1\\ \sum_{i=1}^qk_i&,otherwise \end{matrix ...

  2. 牛客练习赛 小D的剑阵 解题报告

    小D的剑阵 题意链接: https://ac.nowcoder.com/acm/contest/369/F 来源:牛客网 现在你有 \(n\) 把灵剑,其中选择第i把灵剑会得到的 \(w_i\) 攻击 ...

  3. 牛客OI周赛7-普及组 解题报告

    出题人好评. 评测机差评. A 救救喵咪 二位偏序.如果数据范围大的话直接树状数组,不过才1000就\(O(n^2)\)暴力就ok了. #include <bits/stdc++.h> s ...

  4. nowcoder(牛客网)OI测试赛2 解题报告

    qwq听说是一场普及组难度的比赛,所以我就兴高采烈地过来了qwq 然后发现题目确实不难qwq.....但是因为蒟蒻我太蒻了,考的还是很差啦qwq orz那些AK的dalao们qwq 赛后闲来无事,弄一 ...

  5. 牛客练习赛 小A与最大子段和 解题报告

    小A与最大子段和 题意 在一个序列 \(\{a\}\) 里找到一个非空子段 \(\{b\}\), 满足 \(\sum\limits_{i=1}^{|b|}b_i\times i\) 最大 \(n\le ...

  6. 牛客OI赛制测试赛3 解题报告

    前话: 话说考试描述:普及难度. 于是想在这场比赛上涨点信心. 考出来的结果:Point:480     Rank:40 然而同机房的最好成绩是 510. 没考好啊!有点炸心态,D题一些细节没有注意, ...

  7. 牛客 NOIp模拟1 T1 中位数 解题报告

    中位数 题目描述 小\(N\)得到了一个非常神奇的序列\(A\).这个序列长度为\(N\),下标从\(1\)开始.\(A\)的一个子区间对应一个序列,可以由数对\([l,r]\)表示,代表\(A[l] ...

  8. 牛客 NOIp模拟1 T3 保护 解题报告

    保护 题目描述 \(C\)国有\(n\)个城市,城市间通过一个树形结构形成一个连通图.城市编号为\(1\)到\(n\),其中\(1\)号城市为首都.国家有\(m\)支军队,分别守卫一条路径的城市.具体 ...

  9. nowcoder(牛客网)OI测试赛3 解题报告

    昨天因为胡搞了一会儿社团的事情,所以错过(逃过)了nowcoder的测试赛..... 以上,听说还是普及组难度qwq,而且还有很多大佬AK(然而我这么蒻肯定还是觉得有点难度的吧qwq) 不过我还是日常 ...

随机推荐

  1. prop和attr的比较

    prop来获取或设置固有属性  removeProp()  删除固有属性 attr来获取或设置自定义属性     removeAttr() 删除自定义属性 案例:全选与全不选 <body> ...

  2. 案例学Python--案例四:Django实现一个网站的雏形(1)

    第一次用python的Web框架,也是第一次听说Django,参考菜鸡教程和一些博客,倒腾了半天,算是有一个雏形.数据基于昨天爬的豆瓣电影信息,详见案例三. Python版本:3.7.1 Django ...

  3. 谈谈css伪类与伪元素

    前端er们大都或多或少地接触过CSS伪类和伪元素,比如最常见的:focus.:hover以及<a>标签的:link.:visited等,伪元素较常见的比如:before.:after等. ...

  4. 个人阅读作业2—《No Silver Bullet: Essence and Accidents of Software Engineering》读后感

    在进行了一次结对编程.一次团队编程和一次个人编程项目后,读了<No Silver Bullet: Essence and Accidents of Software Engineering> ...

  5. Linux实验四报告

    张文俊 + 原创作品转载请注明出处+ <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.学习内容 系统 ...

  6. shell脚本--制作自己的服务脚本

    首先注意一下,我用的环境是centos6.5,中间有一些操作和在Ubuntu上有一些地方的操作是不同的, 编写脚本 首先看一个实例:假设有一个test的服务,可以通过命令对test进行启动.关闭或者重 ...

  7. PAT L2-011 玩转二叉树

    https://pintia.cn/problem-sets/994805046380707840/problems/994805065406070784 给定一棵二叉树的中序遍历和前序遍历,请你先将 ...

  8. NODE中解决跨域请求的问题

    1.Node Express 解决请求跨域请求 标签(空格分隔): 跨域 1是Access-Control-Allow-Origin 允许的域 2是Access-Control-Allow-Heade ...

  9. Sub-Processes and Call Activities

    https://www.activiti.org/userguide/#bpmnCallActivity http://www.flowable.org/docs/userguide/index.ht ...

  10. Eclipse Creating a New Runnable JAR File 清理工作空间下的配置文件

    D:\workspacegit\.metadata\.plugins\org.eclipse.debug.core\.launches 相关文件存在这里.