hdu 4869 Task(馋)
题目大意:有n台机器,m个任务。每一个机器和任务都有有xi和yi。要求机器的xi。yi均大于等于任务的xi和yi才干运行任务。
每台机器一天仅仅能运行一个任务。要求完毕的任务数尽量多,而且说金额尽量大。
完毕每一个任务的金额为xi∗500+yi∗2
解题思路:贪心,mach[i][j]表示等级为i,时间为j的机器数量,task[i][j]表示等级为i,时间为j的机器数量。
每次优先降低i,由于相应等级降低100,相应的金额代价也不会降低超过500(即时间降低1)。
每次mach[i][j]要加上mach[i][j+1],即上面没有被使用的机器。tmp记录当前j下,等级大于i的机器个数。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef __int64 ll;
const int maxt = 1440;
const int maxd = 100;
int N, M;
int mach[maxd+10][maxt+10], task[maxd+10][maxt+10];
void init () {
int a, b;
memset(mach, 0, sizeof(mach));
memset(task, 0, sizeof(task));
for (int i = 0; i < N; i++) {
scanf("%d%d", &a, &b);
mach[b][a]++;
}
/*
for (int i = maxd; i >= 0; i--)
for (int j = maxt; j >= 0; j--)
mach[i][j] = mach[i][j] + mach[i+1][j] + mach[i][j+1] - mach[i+1][j+1];
*/
for (int i = 0; i < M; i++) {
scanf("%d%d", &a, &b);
task[b][a]++;
}
}
void solve () {
ll ans = 0;
int cnt = 0;
for (int j = maxt; j >= 0; j--) {
int tmp = 0;
for (int i = maxd; i >= 0; i--) {
mach[i][j] += mach[i][j+1];
tmp += mach[i][j];
int k = min(tmp, task[i][j]);
ans += (ll)k * (2LL * i + 500LL * j);
tmp -= k;
cnt += k;
for (int x = i; x <= maxd; x++) {
int p = min(mach[x][j], k);
k -= p;
mach[x][j] -= p;
if (k == 0)
break;
}
}
}
printf("%d %I64d\n", cnt, ans);
}
int main () {
while (scanf("%d%d", &N, &M) == 2 && N + M) {
init();
solve();
}
return 0;
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
hdu 4869 Task(馋)的更多相关文章
- HDU 4869 (递推 组合数取模)
Problem Turn the pokers (HDU 4869) 题目大意 有m张牌,全为正面朝上.进行n次操作,每次可以将任意ai张反面,询问n次操作可能的状态数. 解题分析 记正面朝上为1,朝 ...
- HDU 4869 Turn the pokers(推理)
HDU 4869 Turn the pokers 题目链接 题意:给定n个翻转扑克方式,每次方式相应能够选择当中xi张进行翻转.一共同拥有m张牌.问最后翻转之后的情况数 思路:对于每一些翻转,假设能确 ...
- HDU 4864 Task(贪心)
HDU 4864 Task 题目链接 题意:有一些机器和一些任务.都有时间和等级,机器能做任务的条件为时间等级都大于等于任务.而且一个任务仅仅能被一个机器做.如今求最大能完毕任务.而且保证金钱尽量多 ...
- Hdu 4864(Task 贪心)(Java实现)
Hdu 4864(Task 贪心) 原题链接 题意:给定n台机器和m个任务,任务和机器都有工作时间值和工作等级值,一个机器只能执行一个任务,且执行任务的条件位机器的两个值都大于等于任务的值,每完成一个 ...
- hdu 4864 Task (馋)
# include <stdio.h> # include <algorithm> # include <string.h> using namespace std ...
- hdu 4864 Task(贪婪啊)
主题链接:pid=4864">http://acm.hdu.edu.cn/showproblem.php?pid=4864 Task Time Limit: 4000/2000 MS ...
- HDU 3572 Task Schedule(拆点+最大流dinic)
Task Schedule Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- HDU 4864 Task (贪心+STL多集(二分)+邻接表存储)(杭电多校训练赛第一场1004)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4864 解题报告:有n台机器用来完成m个任务,每个任务有一个难度值和一个需要完成的时间,每台机器有一个可 ...
- hdu 4864 Task
题目链接:hdu 4864 其实就是个贪心,只是当初我想的有偏差,贪心的思路不对,应该是这样子的: 因为 xi 的权值更重,所以优先按照 x 来排序,而这样的排序方式决定了在满足任务(即 xi > ...
随机推荐
- 深入研究Java类载入机制
深入研究Java类载入机制 类载入是Java程序运行的第一步,研究类的载入有助于了解JVM运行过程,并指导开发人员採取更有效的措施配合程序运行. 研究类载入机制的第二个目的是让程序能动态的控制类载 ...
- SQLSERVER存储过程语法的具体解释
SQL SERVER存储过程语法: Create PROC [ EDURE ] procedure_name [ ; number ] [ { @parameter data_type } ...
- Following unknown configure options were used:--enable-fpm
跑cd php-5.2.13安装时间 ./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc ...
- 让struts2和servlet共存
由于struts2默认的是拦截全部的请求 由配置文件能够看出 <filter> <filter-name>struts2</filter-name> <fil ...
- rest服务器
一个轻量级rest服务器 RestServer直接发布数据库为json格式提供方法 RestSerRestServer直接发布数据库为json格式 支持MySQL,SqlServer,Oracle ...
- hdoj 2121 Ice_cream’s world II 【没有最低树的根节点】
称号:pid=2121" target="_blank">hdoj 2121 Ice_cream's world II 题意:题目是一道躶题,给n个点,m条边的有向 ...
- 24L01/SI24R1调试笔记
1.SPI MSB优先,8Bit寄存器地址与内容: 2.寄存器结构与之前使用的LT8900不同,分为R.W寄存器与特殊功能寄存器: 3.特别注意:在TX.RX.RT中断或者轮询后置1,必须写1清零与清 ...
- 【IOS开发笔记01】学生管理系统(上)
端到端的机会 虽然现在身处大公司,但是因为是内部创业团队,产品.native.前端.服务器端全部坐在一起开发,大家很容易做零距离交流,也因为最近内部有一个前端要转岗过来,于是手里的前端任务好像可以抛一 ...
- 如何关闭CBox(2.4版本号)强制升级的形式
从今天开始2.4.0.9版本号CBox,提示检测到新的版本号,能够使用后必须更新为新版本号,提示表见下面的例子. 此次升级是强制升级.假如你选择不升级(单击窗体上的升级提示右下角"辍学but ...
- Chromium on Android: Android在系统Chromium为了实现主消息循环分析
总结:刚开始接触一个Chromium on Android时间.很好奇Chromium主消息循环是如何整合Android应用. 为Android计划,一旦启动,主线程将具有Java消息层循环处理系统事 ...