Problem F:汽車加油 Time Limit:1000MS Memory Limit:65536K Total Submit:1400 Accepted:404 Language: not limited Description 一輛汽車加滿油后可行駛n公里。旅途中有若干個加油站。設計一個有效算法,指出應在哪些加油站停靠加油,使沿途加油次數最少。 編程任務: 對于給定的n和k(k <= 10000)個加油站位置,編程計算最少加油次數。 Input 第一行有2 個正整數n和k,表示汽車加滿油后可行駛n公里,且旅途中有k個加油站。接下來的1 行中,有k+1 個整數,表示第k個加油站與第 k-1 個加油站之間的距離。第0 個加油站表示出發地,汽車已加滿油。第k+1 個加油站表示目的地。 Output 輸出最少加油次數。如果無法到達目的地,則輸出”No Solution”。 Sample Input 7 7 1 2 3 4 5 1 6 6 Sample Output 4
標簽: Limit Accepted Language Problem
上傳時間: 2016-04-12
上傳用戶:youth25
算法實現題1-2 連續和問題 « 問題描述: 給定一個正整數n,計算有多少個不同的連續自然數段,其和恰為n。例如,當n=27 時,有4 個不同的連續自然數段的和恰為27:2+3+4+5+6+7;8+9+10;13+14;27。 « 編程任務: 給定一個正整數n,試設計一個O(n)時間算法,計算有多少個不同的連續自然數段的 和恰為n。 « 數據輸入: 由文件input.txt提供輸入數據。文件的第1 行是正整數n。 « 結果輸出: 程序運行結束時,將計算出的和恰為n的連續自然數段的個數輸出到output.txt中。 輸入文件示例 輸出文件示例 input.txt 27 output.txt 4
上傳時間: 2016-05-28
上傳用戶:yulg
給定n個矩陣{A1,A2,…,An},其中Ai與Ai+1是可乘的,i=1,2,…,n-1。考察這n個矩陣的連乘積A1A2…An。由于矩陣乘法滿足結合律,故計算矩陣的連乘積可以有許多不同的計算次序,這種計算次序可以用加括號的方式來確定。若一個矩陣連乘積的計算次序完全確定,則可以依此次序反復調用2個矩陣相乘的標準算法(有改進的方法,這里不考慮)計算出矩陣連乘積。若A是一個p×q矩陣,B是一個q×r矩陣,則計算其乘積C=AB的標準算法中,需要進行pqr次數乘。
上傳時間: 2016-06-18
上傳用戶:hjshhyy
給定一個自然數n,由n開始可以依次產生半數集set(n)中的數如下。 (1) n∈set(n); (2) 在n的左邊加上一個自然數,但該自然數不能超過最近添加的數的一半; (3) 按此規則進行處理,直到不能再添加自然數為止。 例如,set(6)={6,16,26,126,36,136}。半數集set(6)中有6個元素。
標簽:
上傳時間: 2014-01-17
上傳用戶:rishian
問題描述 設有n種不同面值的硬幣,各硬幣的面值存于數組T[1:n]中。現要用這些面值的硬幣來找錢,可以實用的各種面值的硬幣個數不限。當只用硬幣面值T[1],T[2],…,T[i]時,可找出錢數j的最少硬幣個數記為C(i,j)。若只用這些硬幣面值,找不出錢數j時,記C(i,j)=∞。 編程任務 設計一個動態規劃算法,對1≤j≤L,計算出所有的C( n,j )。算法中只允許實用一個長度為L的數組。用L和n作為變量來表示算法的計算時間復雜性 數據輸入 由文件input.txt提供輸入數據。文件的第1行中有1個正整數n(n<=13),表示有n種硬幣可選。接下來的一行是每種硬幣的面值。由用戶輸入待找錢數j。 結果輸出 程序運行結束時,將計算出的所需最少硬幣個數輸出到文件output.txt中。
標簽:
上傳時間: 2016-07-28
上傳用戶:yangbo69
整數劃分問題: 對于正整數n,輸出其和等于n且滿足以下限制條件的所有正整數的形式,既組成和式的數字子左到右構成一個非遞增的序列。例n=4,程序輸出為 4=4 4=3+1 4=2+2 4=2+1+1 4=1+1+1+1
上傳時間: 2016-08-10
上傳用戶:koulian
給定含有n 個元素的多重集合S = {a1, a2,., an } ,1 ≤ ai ≤ n ,1 ≤ i ≤ n ,每個元素在S 中出現的次數稱為該元素的重數。多重集S 中重數大于n/2 的元素稱為主元素。例如,S={2,2,4,2,1,2,5,2,2,8}。多重集S 的主元素是2,其重數為6。
上傳時間: 2016-08-20
上傳用戶:chongcongying
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
//建立按鈕上標簽的字符串 label = XmStringCreateSimple["Hello World!"] n = 0 XtSetArg[args[n], XmNlabelString, label] n++ button = XmCreatePushButton[toplevel, "pushbutton", args, n] XtManageChild[button] XmStringFree[label] //設置回調函數 XtAddCallback[button, XmNactivateCallback, callback, NULL]
標簽: XmStringCreateSimple XtSetArg XmNlab label
上傳時間: 2017-03-21
上傳用戶:fredguo
//建立頂級窗口 toplevel = XtVaAppInitialize[&app, "Form", NULL, 0, &argc, argv, NULL, NULL] n = 0 XtSetArg[args[n], XmNwidth, 500] n++ XtSetArg[args[n], XmNheight, 500] n++ XtSetValues[toplevel, args, n] //建立主窗口 form = XmCreateForm[toplevel, "form", NULL, 0] XtManageChild[form] //建立菜單條 n = 0 XtSetArg[args[n], XmNtopAttachment, XmATTACH_FORM] n++ XtSetArg[args[n], XmNleftAttachment, XmATTACH_FORM] n++ XtSetArg[args[n], XmNrightAttachment, XmATTACH_FORM] n++ menubar = XmCreateMenuBar[form, "menubar", args, n] XtManageChild[menubar] create_menu[menubar]
標簽: NULL XtVaAppInitialize toplevel Form
上傳時間: 2013-12-19
上傳用戶:亞亞娟娟123