ZOJ 1012 Mainframe
题目大意:有一台主机,有m个cpu和n的内存,有l个任务,每个任务需消耗一定的cpu和内存,给出任务的开始时间和截止时间,完成任务可获得一定的金钱,同时提前完成有奖金,延后完成要扣钱。计算到某个时间所得收入。
首先按照任务的开始时间和价值进行排序,然后就是模拟题目描述的过程了。
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define MAXN 10000+10 struct Job
{
int a, b;
int t, u;
int v, w, x;
bool operator < (const Job& x) const
{
if (t != x.t) return t < x.t;
else return v > x.v;
}
};
Job jobs[MAXN];
bool finish[MAXN]; int main()
{
#ifdef LOCAL
freopen("in", "r", stdin);
#endif
int F, M, N, L;
int kase = ;
while (scanf("%d", &F) != EOF && F)
{
scanf("%d%d%d", &M, &N, &L);
for (int i = ; i < L; i++)
scanf("%d%d%d%d%d%d%d", &jobs[i].a, &jobs[i].b, &jobs[i].t, &jobs[i].u, &jobs[i].v, &jobs[i].w, &jobs[i].x);
sort(jobs, jobs+L);
memset(finish, , sizeof(finish));
int income = ;
for (int i = ; i < F; i++)
{
int cpu = M, mem = N;
for (int j = ; j < L; j++)
{
if (jobs[j].t > i) break;
if (!finish[j] && cpu >= jobs[j].a && mem >= jobs[j].b)
{
cpu -= jobs[j].a;
mem -= jobs[j].b;
finish[j] = true;
income += jobs[j].v;
int t = i + ; // the finished time
if (t < jobs[j].u) income += jobs[j].w * (jobs[j].u-t);
if (t > jobs[j].u) income -= jobs[j].x * (t-jobs[j].u);
}
}
}
for (int i = ; i < L; i++)
if (!finish[i] && jobs[i].u <= F)
income -= jobs[i].x * (F - jobs[i].u);
printf("Case %d: %d\n\n", ++kase, income);
}
return ;
}
ZOJ 1012 Mainframe的更多相关文章
- POJ题目细究
acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP: 1011 NTA 简单题 1013 Great Equipment 简单题 102 ...
- 【转】POJ百道水题列表
以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...
- ZOJ题目分类
ZOJ题目分类初学者题: 1001 1037 1048 1049 1051 1067 1115 1151 1201 1205 1216 1240 1241 1242 1251 1292 1331 13 ...
- 【转载】图论 500题——主要为hdu/poj/zoj
转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...
- HDU 4430 & ZOJ 3665 Yukari's Birthday(二分法+枚举)
主题链接: HDU:pid=4430" target="_blank">http://acm.hdu.edu.cn/showproblem.php?pid=4430 ...
- ZOJ People Counting
第十三届浙江省大学生程序设计竞赛 I 题, 一道模拟题. ZOJ 3944http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=394 ...
- ZOJ 3686 A Simple Tree Problem
A Simple Tree Problem Time Limit: 3 Seconds Memory Limit: 65536 KB Given a rooted tree, each no ...
- ZOJ Problem Set - 1394 Polar Explorer
这道题目还是简单的,但是自己WA了好几次,总结下: 1.对输入的总结,加上上次ZOJ Problem Set - 1334 Basically Speaking ac代码及总结这道题目的总结 题目要求 ...
- ZOJ Problem Set - 1392 The Hardest Problem Ever
放了一个长长的暑假,可能是这辈子最后一个这么长的暑假了吧,呵呵...今天来实验室了,先找了zoj上面简单的题目练练手直接贴代码了,不解释,就是一道简单的密文转换问题: #include <std ...
随机推荐
- jquery选中checkbox多选项并添加到文本框中
<script> function check(){ var dd = ""; if($("input[type='checkbox'][name='moke ...
- C# 经典入门15章 -TabControl
- jQuery获取Select选中的Text和Value,根据Value值动态添加属性等
语法解释:1. $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发2. var ch ...
- Qt5:不规则按钮的实现---通过贴图实现
在应用开发中,有时候为了美观会在UI界面中增加不规则的按钮 现在我们就来看看Qt中是怎么实现不规则按钮的 /////////////////////////////////////////////// ...
- [转]Firefox拦截12306订票网站的解决办法
解决方法:1.找到firefox选项设置(Ubuntu下的ff的选项在[Edit]-[Preferences]中) 2.点击[Advanced]-[Encryption]-[View Certific ...
- Python大神成长之路: 第一次学习记录
一.Python发展史 二.Python2 or 3 博主选择了Python3. 从官网下载Python www.python.org Windows安装python3.5.python2.7.安装 ...
- iOS 热更新插件
1.JSPatch 平台 http://jspatch.com/Docs/intro 2.React Native 中文文档 http://wiki.jikexueyuan.com/project/r ...
- c#如何序列化与反序列化json文件
见网站: http://www.json.org/ 代码如下: /* * Copyright (c) 2013 Calvin Rien * * Based on the JSON parser by ...
- read gc log
http://www.aichengxu.com/article/Java/18368_2.html https://blogs.oracle.com/poonam/entry/understandi ...
- C#+QI的例子
COM中,和我们打交道的是接口,也就是说类对我们是隐形的,那么我们要做开发,要使用这些功能,我们只能通过接口,通过接口暴露出来的方法,COM是一种服务器端/客户端架构,服务器端定义了操作的法,客户端通 ...