java资源分配算法,java - 资源分配与动态规划算法 - 堆栈内存溢出

给定一组函数f1 ... fn(离散时间)和时间限制(int),应找到最大输出,即在不同函数之间分配时间以最大化所用函数输出的总和。

对于任何函数,任何时候的值表示如果用于所述时间的函数的总输出。 即F(2)=函数的总输出,如果使用2秒。 不是F(1)+ F(2)。

所有值(时间,函数输出)都是整数。

我的当前算法通过检查F(t)找到所有时间被放入一个函数的情况,将最大值与前一个最大M(t-1)+的所有可能输出的最大值进行比较,找出可能损坏的最大值为每个可能的功能添加1秒(带有已使用功能和时间的记录)。

public int computeDamage(){

int totalTime = calculator.getTotalTime();

int numAttacks = calculator.getNumAttacks();

if(totalTime == 0) return 0;

int[] attackHist = new int[numAttacks];

return maxDamage(numAttacks, attackHist, 1, totalTime, 0);

}

public int maxDamage(int numAttacks, int[] attackHist, int start, int end, int max) {

//get the max of all the values at f(start), save the attack

int maxF = -1, attack = -1;

for(int i = 0; i < numAttacks; i++) {

int dam = calculator.calculateDamage(i, start);

if(dam > maxF) {

maxF = dam;

attack = i;

}

}

//if start isn't 1, get the max of all possible values added to the attackHist

int maxH = -1, attackH = -1;

if(start > 1) {

for(int j = 0; j < numAttacks; j++) {

int dChange = -1;

if(attackHist[j] > 0) dChange = calculator.calculateDamage(j, attackHist[j]+1) - calculator.calculateDamage(j, attackHist[j]);

else dChange = calculator.calculateDamage(j, attackHist[j]+1);

if((max + dChange) > maxH) {

maxH = max + dChange;

attackH = j;

}

}

//if max is greater, reset attackHist. Otherwise, add 1 to used attack

if(maxF > maxH) {

Arrays.fill(attackHist, 0);

attackHist[attack] = start;

max = maxF;

} else {

attackHist[attackH]++;

max = maxH;

}

} else {

//just set the max to maxF

max = maxF;

attackHist[attack] = 1;

}

if(end == start) return max;

else return maxDamage(numAttacks, attackHist, start+1, end, max);

}

输入12.in

20 12

0 3 4 7 9 12 12 14 15 15 17 19

2 5 6 9 11 12 15 15 16 19 21 22

1 4 6 8 9 11 13 14 16 18 21 22

1 4 4 4 5 5 6 8 9 11 12 14

0 3 4 5 7 10 12 13 15 17 20 20

1 3 5 5 8 10 10 12 14 15 16 18

1 1 3 5 7 8 10 11 11 13 14 16

1 1 2 2 2 3 6 7 10 11 11 12

1 3 5 5 7 7 8 11 11 12 14 16

0 1 4 5 6 9 10 11 12 12 15 18

3 5 5 7 8 10 12 12 14 15 15 16

3 5 6 9 12 12 13 14 15 18 21 21

1 2 3 4 7 9 10 12 12 15 18 18

3 4 5 7 8 10 12 13 13 16 17 20

3 5 7 7 10 11 14 16 17 18 21 23

0 1 4 7 7 8 10 12 13 13 14 16

2 3 3 6 8 9 12 15 17 18 20 21

0 2 3 3 6 8 9 10 13 15 17 17

1 2 4 7 9 9 9 11 14 14 17 19

3 5 6 7 10 11 12 12 13 16 17 19

第一行告诉我们有多少函数(20)和多少时间(12秒)来最大化输出。

每一行都是一个定义为1到12 F(t)的函数,详细说明了该函数在该点之前完成了多少损坏。

输出应为31,但我的代码输出为30。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/259518.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Factorial Trailing Zeroes 172

题目描述&#xff1a; 给出一个integer n&#xff0c;计算n&#xff01;结尾0的个数 题目分析&#xff1a; 考虑暴力&#xff0c;计算n&#xff01;统计最后面0的个数。先不说数字溢出&#xff0c;其次n是一个integer &#xff0c;O(n)复杂度超时 我们接着考虑&#xff0c;产生…

DateTime.Now.ToString() 用法

//2008年4月24日 System.DateTime.Now.ToString("D"); //2008-4-24 System.DateTime.Now.ToString("d"); //2008年4月24日 16:30:15 System.DateTime.Now.ToString("F"); //2008年4月24日 16:30 System.DateTime.No…

GAP平台

2019独角兽企业重金招聘Python工程师标准>>> 转载于:https://my.oschina.net/u/2441327/blog/846754

二进制与十进制的转换

本文参考:http://www.360doc.com/content/11/0308/14/5327079_99222581.shtml文献整理所得。 1.正整数的十进制转换为二进制. 十进制整数转换为二进制整数采用"除2取余&#xff0c;逆序排列"法。具体做法是&#xff1a;用2整除十进制整数&#xff0c;可以得到一个商…

php记录已经点击过,最近一次的PHP面试题记录,office已到手!

1、explain 具体哪些等级具体有 system、const、range、index、all2、MySQL 优化避免全表查询&#xff0c;首先应考虑在 where 及 order by 涉及的列上建立索引应尽量避免在 where 子句中对字段进行 null 值判断&#xff0c;否则将导致引擎放弃使用索引而进行全表扫描 (可以将字…

原生Ajax讲解

典型的http通信&#xff1a;浏览器向服务器发出请求&#xff0c;服务器向客户端返回响应&#xff0c;浏览器重新加载页面&#xff0c;这种不连续的页面加载方式导致用户的体验变得杂乱&#xff0c;缺乏连贯性。 如&#xff1a; 在一般的web应用程序中&#xff0c;用户填写表单字…

16、Python与设计模式--模板模式

一、股票查询客户端 投资股票是种常见的理财方式&#xff0c;我国股民越来越多&#xff0c;实时查询股票的需求也越来越大。今天&#xff0c;我们通过一个简单的股票查询客户端来认识一种简单的设计模式&#xff1a;模板模式。根据股票代码来查询股价分为如下几个步骤&#xff…

避免滥用子选择器

CSS的选择符是有权重的&#xff0c;当不同选择符的样式设置有冲突时&#xff0c;会采用权重高的选择符设置的样式。 如果CSS选择符权重相同&#xff0c;那么样式会遵循就近原则&#xff0c;哪个选择符最后定义&#xff0c;就采用哪个选择符的样式。 如果忽略了CSS选择符权重&am…

C++中的空类,默认产生哪些类成员函数?

class Empty { public:/*Empty();//默认构造函数Empty(const Empty& rhs);//拷贝构造函数~Empty();//析构函数Empty& operator(const Empty& rhs);//赋值函数Empty* operator&();//取地址运算符const Empty* operator&() const;//取址运算符 const */ prot…

php exist echo,PHP函数file_exists介绍

&#xfeff;定义和用法file_exists() 函数检查文件或目录是否存在。如果指定的文件或目录存在则返回 true&#xff0c;否则返回 false。exists中文翻译为存在的意思。语法file_exists(path)例子Example #1<?phpecho file_exists("test.txt");?>输出&#x…

闭包应用之延迟函数setTimeout

根据HTML 5标准&#xff0c;setTimeout推迟执行的时间&#xff0c;最少是5毫秒。如果小于这个值&#xff0c;会被自动增加到5ms。 每一个setTimeout在执行时&#xff0c;会返回一个唯一ID&#xff0c;把该ID保存在一个变量中&#xff0c;并传入clearTimeout&#xff0c;可以清除…

并行编程2——多核体系架构

1.1 多核处理器定义 多内核处理器架构是指&#xff1a;芯片设计工程师在单个处理器中集成两个或多个 “执行内核&#xff08;即计算引擎&#xff09;”。多内核处理器可直接插入到单一处理器基座中。但是&#xff0c;操作系统会把它的每个执行内核作为独立的逻辑处理器&#x…

21:苹果和虫子2

团队QQ&#xff1a;466373640个人博客&#xff1a;www.doubleq.winc/noi/信息学奥数博客&#xff1a;http://www.cnblogs.com/zwfymqz 1:苹果和虫子2 查看提交统计提问总时间限制:1000ms内存限制:65536kB描述你买了一箱n个苹果&#xff0c;很不幸的是买完时箱子里混进了一条虫子…

php运行代码运行退出为0,php – Selenium测试用例返回进程以退出代码0结束

你使用“phpunit yourTestCase.php”而不是“php yourTestCase.php”吗&#xff1f;我使用phpunit(3.5.14)和“selenium-server-standalone-2.0rc2.jar”运行你的testfile,没有问题(除了测试本身失败)&#xff1a;PHPUnit 3.5.14 by Sebastian Bergmann.ETime: 10 seconds, Mem…

Xcode6中使用initWithTitle:title image:image selectedImage:自定义图片

使用xcode6来运行项目&#xff0c;发现使用原生的tabbar上的图片不显示了。这个问题是因为xcode6中的一些api方法被废弃了,同时tabbar上图片的渲染方式发生了改变。先看xcode6中的tabbar api方法的变更&#xff1a;- (void)setFinishedSelectedImage:(UIImage *)selectedImage …

[Node.js]get/post请求

摘要 在很多情况下&#xff0c;我们的web服务器都需要接受客户端浏览器传递的参数或者数据。最常见的是get和post请求。 获取get请求的内容 get请求传递的参数在url中&#xff0c;参数部分在?后面。因此可以手动解析后面的内容作为get请求的参数。node.js中url模块中的parse函…

MyEclipse10 Tomcat7 JDK1.7 配置

第一步.MyEclipse10 Tomcat7 JDK1.7下载 MyEclipse10http://downloads.myeclipseide.com/downloads/products/eworkbench/indigo/installers/myeclipse-10.0-offline-installer-windows.exe Tomcat http://tomcat.apache.org/ Java SE Development Kit 7 WINDOWS版 http://www…

类的静态成量变量必须初始化

因为类的静态成员变量是所有实例共用的.所以得在类外初始化. 调用的时候可以通过对象调用,也可以通过类直接调用 classA { public: inti; //有默认值}; classB { public: staticintn;staticA Aobj;}; intB::n 1; //静态成员变量的初始化A B::Aobj; //静态…

2阶节IIR算法C语言源码

纯C语言软件算法&#xff0c;没有做过多优化&#xff0c;只是实现了基本IIR算法 /****************************************************************************** * 二阶IIR滤波器单元,采用直接II型 * 由多个2阶节&#xff0c;可以组成更多高阶的滤波器 * 根据参数的不同&a…

HDU 3709 Balanced Number (数位DP)

题意 求出[x, y] 范围内的平衡数&#xff0c;平衡数定义为&#xff1a;以数中某个位为轴心&#xff0c;两边的数的偏移量为矩&#xff0c;数位权重&#xff0c;使得整个数平衡。 思路 外层枚举平衡点&#xff0c;然后数位DP即可。设计状态&#xff1a; dp[pos][o][left_right] …