zoj 1012
来源:互联网 发布:java windows api 编辑:程序博客网 时间:2024/05/29 02:17
// C++Exercise.cpp : 定义控制台应用程序的入口点。//#include<iostream>#include<string>#include<stack>#include<map>#include<vector>#include<algorithm>#include<iomanip>#include<cmath>#include<cstdio>using namespace std;typedef struct{int a, b, t, u, v, w, x;}job;vector<job> que;int M, N, L;int F;bool compare(job a,job b){if (a.t != b.t) return a.t < b.t;else return a.v > b.v;}int main(){int Case = 0;while (cin >>F&&F){Case++;que.clear();cin >> M >> N >> L;for (int i = 0; i < L; i++){job temp;cin >> temp.a >> temp.b >> temp.t >> temp.u >> temp.v >> temp.w >> temp.x;que.push_back(temp);}sort(que.begin(),que.end(),compare);int sum = 0;vector<bool> finish(L,0);for (int i = 0; i < F; i++){int Cpu = M;int Source = N;for (int j = 0; j < L; j++){if (que[j].t > i) break;if (Cpu >= que[j].a&&Source>=que[j].b&&!finish[j]){Cpu -= que[j].a;Source -= que[j].b;finish[j] = true;sum += que[j].v;if (i + 1 >= que[j].u){sum -= (i + 1 - que[j].u)*que[j].x;}else{sum += (que[j].u - i - 1)*que[j].w;}}}}for (int i = 0; i < L; i++){if (!finish[i] && que[i].u < F){sum -= (F - que[i].u)*que[i].x;}}cout << "Case " << Case << ": ";cout << sum << endl<<endl;}return 0;}简单的题目,就是模拟。但是注意在每一个Case之后都要输出一个换行符。
阅读全文
0 0
- ZOJ 1012
- zoj 1012
- zoj 1012Mainframe
- ZOJ 1012 Mainframe
- zoj 1012 Mainframe
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- Linux_正则表达式
- Linux tar 命令 压缩、解压
- [DuiLib教程2]DuiLib第一个测试Demo的注释
- 【论文阅读】 Enhancing Video Event Recognition Using Automatically Constructed Semantic-Visual Knowledge
- re.sub 功能
- zoj 1012
- 在caffe中绘制ROC曲线
- velocity.js 动画插件
- Python--itertools包--groupby使用(分类)
- 如何在Ubuntu 14.04上安装与卸载PostgreSQL
- Android调用HTML中JavaScript方法报错
- java实现华为之老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.
- 三层是什么
- 从jar包还原出java源码(项目文件)