Home+Work
来源:互联网 发布:淘宝买了个单机版 编辑:程序博客网 时间:2024/04/29 17:08
/*OJ.h*/#ifndef __OJ_H__#define __OJ_H__typedef struct paperInfo{ int costTime; int value; double valuePerTime;}paperInfo;int GetMaxValue(int nPapers, int nRemain, int paper[][2], double* pMaxValue);#endif
<pre name="code" class="cpp">#include "OJ.h"#include <iostream>#include <algorithm>using namespace std; bool cmp(const paperInfo &a, const paperInfo &b){ return a.valuePerTime > b.valuePerTime ? true:false;}/*输入: nPapers表示试卷的数目(1≤Papers≤20),nRemain表示剩余的时间(1≤nRemain≤10000),paper[][2]是一个Papers*2的数组,每一行的两个元素依次为做完这一份试卷所需的时间、做完这份试卷的价值输出: *pMaxValue为获得的最大价值返回:0:异常1:计算成功返回*/int GetMaxValue(int nPapers, int nRemain, int paper[][2], double* pMaxValue){ *pMaxValue = 0;paperInfo *array = new paperInfo [nPapers]; memset(array, 0, sizeof(paperInfo) * nPapers); for (int i = 0; i < nPapers; ++i) { array[i].costTime = paper[i][0]; array[i].value = paper[i][1]; array[i].valuePerTime = double(paper[i][1])/paper[i][0]; } sort(array, array + nPapers, cmp); for (int i =0; i < nPapers; ++i) { if (nRemain >= array[i].costTime) { *pMaxValue += double(array[i].value); nRemain -= array[i].costTime; } else { *pMaxValue += array[i].valuePerTime * nRemain; nRemain = 0; } if (nRemain <= 0) { break; } }return 0;}
0 0
- Home Work
- home work
- Home Work
- Home Work
- Home+Work
- Home+work
- Home+Work
- Home work
- Home Work
- Home Work
- Work from home
- tzc1100 Home Work
- AOJ2 Home Work
- 华为OJ Home+work
- HZNUOJ 1111 Home Work
- YTU 1002: Home Work
- 南阳师范 home work
- 计蒜客 Home Work
- MySQL sql语句大全
- 设计模式之策略(PHP实现)
- cocos2dx 将3dmax模型和动画导入游戏
- 栈的push、pop序列[数据结构]
- android蓝牙与下位机交互
- Home+Work
- XML PULL解析
- 堪称最好的A*算法
- 解决tabhost底部tab问题
- 基于系统级触发器的审计功能
- C++/C语言的标准库函数与运算符的区别new/delete malloc/free
- oracle中export出的文件在import后出现的错误
- selenium RC 环境配置
- [Mac OS][工具分享]Dash