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 ...
随机推荐
- 剑指offer反转链表
way1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3 ...
- 转 如何使用V7包中ActionBar(Eclipse版)
http://blog.csdn.net/appte/article/details/11712591 以前3.0以前的版本要使用ActionBar,必须使用国外大牛写的ActionBarSherlo ...
- 升级版本后报这个异常 : org.springframework.beans.factory.NoUniqueBeanDefinitionException
今天写代码时出现上面这个异常,很是奇怪.从网上下载了个Spring源码包,通过追踪源码发现并没有到加载工程代码中去.于是分析和Spring包有关系. 查看依赖库发现有两个版本的Spring.通过分析去 ...
- HDU 4421 ZOJ 3656 Bit Magic
2-SAT,不要所有位置全部建好边再判断,那样会MLE的. 正解是,每一位建好边,就进行一次2-SAT. #include<cstdio> #include<cstring> ...
- UESTC 1222 Sudoku
爆搜即可 /* *********************************************** author : email :523689985@qq.com created tim ...
- POJ 2991 Crane
线段树+计算几何,区间更新,区间求和,向量旋转. /* *********************************************** Author :Zhou Zhentao Ema ...
- git第一篇---基本命令
摘要: (1)用git而不是svn.分布式而不是集中式 (2)名词解释 origin是父目录的意思,master是 一个特殊的分支而已.具体参看做最下边: 1.创建仓库 mkdir git cd gi ...
- makefile里有哪些target?
make help or grep ^[a-z].*\:$ Makefile | sed s,:,,g
- Unity3d之shaderLab内置变量
float4 _WorldSpaceCameraPos camera在世界坐标系中的位置float4 _WorldSpaceLightPos0 灯光在世界坐标系中的位置 转载请注明出处: http:/ ...
- The 2014 ACMICPC Asia Invitational Xian
上半年邀请赛的时候真是险而又险地2题拿了个铜,确实其实跟没拿一样......现场前复盘一下,长长记性 [A]签到题 [B]最短路+DFS [C]最短路 [D]构造+欧拉回路 [E]数论,最佳平方逼近 ...