兩臺處理機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