两台处理机A 和B处理n个作业。设第i个作业交给机器 A 处理时需要时间ai,若由机器B 来处理,则需要时间bi。由于各作 业的特点和机器的性能关系,很可能对于某些i,有ai >=bi,而对于 某些j,j!=i,有aj<bj。既不能将一个作业分开由两台机器处理,也没 有一台机器能同时处理2 个作业。设计一个动态规划算法,使得这两 台机器处理完成这n 个作业的时间最短(从任何一台机器开工到最后 一台机器停工的总时间)。研究一个实例:(a1,a2,a3,a4,a5,a6)= (2,5,7,10,5,2);(b1,b2,b3,b4,b5,b6)=(3,8,4,11,3,4)
上传时间: 2014-01-14
上传用户:独孤求源
Euler函数: m = p1^r1 * p2^r2 * …… * pn^rn ai >= 1 , 1 <= i <= n Euler函数: 定义:phi(m) 表示小于等于m并且与m互质的正整数的个数。 phi(m) = p1^(r1-1)*(p1-1) * p2^(r2-1)*(p2-1) * …… * pn^(rn-1)*(pn-1) = m*(1 - 1/p1)*(1 - 1/p2)*……*(1 - 1/pn) = p1^(r1-1)*p2^(r2-1)* …… * pn^(rn-1)*phi(p1*p2*……*pn) 定理:若(a , m) = 1 则有 a^phi(m) = 1 (mod m) 即a^phi(m) - 1 整出m 在实际代码中可以用类似素数筛法求出 for (i = 1 i < MAXN i++) phi[i] = i for (i = 2 i < MAXN i++) if (phi[i] == i) { for (j = i j < MAXN j += i) { phi[j] /= i phi[j] *= i - 1 } } 容斥原理:定义phi(p) 为比p小的与p互素的数的个数 设n的素因子有p1, p2, p3, … pk 包含p1, p2…的个数为n/p1, n/p2… 包含p1*p2, p2*p3…的个数为n/(p1*p2)… phi(n) = n - sigm_[i = 1](n/pi) + sigm_[i!=j](n/(pi*pj)) - …… +- n/(p1*p2……pk) = n*(1 - 1/p1)*(1 - 1/p2)*……*(1 - 1/pk)
上传时间: 2014-01-10
上传用户:wkchong
//Euler 函数前n项和 /* phi(n) 为n的Euler原函数 if( (n/p) % i == 0 ) phi(n)=phi(n/p)*i else phi(n)=phi(n/p)*(i-1) 对于约数:divnum 如果i|pr[j] 那么 divnum[i*pr[j]]=divsum[i]/(e[i]+1)*(e[i]+2) //最小素因子次数加1 否则 divnum[i*pr[j]]=divnum[i]*divnum[pr[j]] //满足积性函数条件 对于素因子的幂次 e[i] 如果i|pr[j] e[i*pr[j]]=e[i]+1 //最小素因子次数加1 否则 e[i*pr[j]]=1 //pr[j]为1次 对于本题: 1. 筛素数的时候首先会判断i是否是素数。 根据定义,当 x 是素数时 phi[x] = x-1 因此这里我们可以直接写上 phi[i] = i-1 2. 接着我们会看prime[j]是否是i的约数 如果是,那么根据上述推导,我们有:phi[ i * prime[j] ] = phi[i] * prime[j] 否则 phi[ i * prime[j] ] = phi[i] * (prime[j]-1) (其实这里prime[j]-1就是phi[prime[j]],利用了欧拉函数的积性) 经过以上改良,在筛完素数后,我们就计算出了phi[]的所有值。 我们求出phi[]的前缀和 */
上传时间: 2016-12-31
上传用户:gyq
全面详细介绍了VHDL,英文版,作者Peter.J.Ashenden
上传时间: 2017-01-02
上传用户:zaizaibang
这是一本经典的设计模式书籍,我的宝贝哦 Copyright © 2002 by James W. Cooper IBM T J Watson Research Center February 1, 2002
上传时间: 2014-08-16
上传用户:lmeeworm
粒子滤波程序,仿真实现自由度机器人对目标的跟踪,使用kalman滤波估计总雅可比矩阵J,噪声为非高斯噪声
上传时间: 2014-01-25
上传用户:顶得柱
Visual Studio 6.0是Microsoft公司推出的一个可视化应用程序集成开发环境(IDE Integrate Develop Environment)。 Visual Studio IDE不仅支持Visual C++,还支持Visual Basic、Visual J++、Visual InterDev等Microsoft系列开发工具。 本简介介绍了通过 ActiveX Automation 接口显示 AutoCAD 对象以及使用 Visual Basic for Applications 编程环境对这些对象进行编程的相关概念。
标签: Visual Studio Environment Microsoft
上传时间: 2013-12-16
上传用户:sjyy1001
一个基于GTK+的单词数值计算器,1、 按照规则计算单词的值,如果 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 26个字母(全部用大写)的值分别为 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,如: WINJACK这个单词的值就为:W+I+N+J+A+C+K=23+9+14+1+3+11=71% HARDWORK=H+A+R+D+W+O+R+D=8+1+18+4+23+15+18+11=98% LOVE=L+O+V+E=12+15+22+5=54% LUCK=L+U+C+K=12+21+3+11=47% ATTITUDE= A+T+T+I+T+U+D+E=1+20+20+9+20+24+4+5=100% 2、对程序的界面布局参考如下图所示,在第一个单行文本框输入一个单词,点击“计算”按钮,按照以上算法计算出该单词的值。 3、如果在最下面的单行文本框输入一个文件路径,此文件每行记录一个单词,那么经过程序计算出各个单词的值,并把结果输出到当前目录下result.txt文件中。如果文件不存在,应该提示错误。
上传时间: 2014-01-11
上传用户:康郎
专家点评: Y P7 `. @ {$ r% pa.功能很强大,可以看出花了很多心血在算法上,非常好。算法上还有一点瑕疵,例如在删除一个员工的同时没有办法自动建立其他员工的上下级关系,必须删除全部下级员工,不是非常合理。此外,界面设计过于简单,应该加强. " W" R+ b* g$ a$ Sb.程序运用了自己的算法来提高Tree控件显示的速度和资源分配,这个非常值得肯定和鼓励。* C. c4 D0 e9 ` J$ w# U c.基本实现所有规定的功能,在所有参赛者中唯一熟 : O) l- F6 F9 f) S7 Q. l练使用面向对象设计方式开发程序的工程师,很不错!程序体现了作者非常扎实的数据结构功底,值得大家学习。工程管理也做得非常好,体现了作者在软件工程方面也有很深入的研究,该代码是很好的学习范例。 % G* H$ ~3 W1 ]. e! id.算法的创新是独特之处(hashtable算法建立),可见作者在数据结构方面的熟练掌握.此程序是很多专家会员学习典范.
上传时间: 2017-01-19
上传用户:奇奇奔奔
有限元分析源程序汇总,含D.R.J. Owen 和一些线性非线性程序段,用FORTRAN77编写,主要用于结构分析
上传时间: 2017-01-20
上传用户:coeus