about:blank
題解題目名稱 二進(jìn)制除法 奇怪的函數(shù) 最小函數(shù)值 矩陣乘法源文件名稱 binary.(pas/c/cpp) xx.(pas/c/cpp) minval.(pas/c/cpp) matrix.(pas/c/cpp)輸入文件名 binary.in xx.in minval.in matrix.in輸出文件名 binary.out xx.out minval.out matrix.out時間限制 1秒 1秒 1秒 1秒內(nèi)存限制 32M 32M 32M 32M測試點(diǎn) 10個 10個 10個 10個分值 100分 100分 100分 100分
Problem 1 : binary二進(jìn)制除法
問題描述 二進(jìn)制數(shù)n mod m的結(jié)果是多少?
輸入數(shù)據(jù) 第一行輸入一個二進(jìn)制數(shù)n。 第二行輸入一個二進(jìn)制數(shù)m。
輸出數(shù)據(jù) 輸出n mod m的結(jié)果。
輸入樣例1010101010111000
輸出樣例1010
時間限制 各測試點(diǎn)1秒
內(nèi)存限制 你的程序?qū)⒈环峙?2MB的運(yùn)行空間
數(shù)據(jù)規(guī)模 n的長度(二進(jìn)制數(shù)的位數(shù))<=200 000; m的長度(二進(jìn)制數(shù)的位數(shù))<=20。題解: 進(jìn)制轉(zhuǎn)換,當(dāng)然,直接用二進(jìn)制去做也是可以的
Problem 2 : xx奇怪的函數(shù)
問題描述 使得x^x達(dá)到或超過n位數(shù)字的最小正整數(shù)x是多少?
輸入數(shù)據(jù) 輸入一個正整數(shù)n。
輸出數(shù)據(jù) 輸出使得x^x達(dá)到n位數(shù)字的最小正整數(shù)x。
輸入樣例11
輸出樣例10
數(shù)據(jù)規(guī)模 n<=2 000 000 000題解: 關(guān)鍵是trunc((x*log10(x)/log10(10)+1))這個公式.可以直接求出x^x的位數(shù).然后二分..糾結(jié)的是我二分竟然寫錯了2次..
Problem 3 : minval最小函數(shù)值
問題描述 有n個函數(shù),分別為F1,F2,...,Fn。定義Fi(x)=Ai*x^2+Bi*x+Ci(x∈N*)。給定這些Ai、Bi和Ci,請求出所有函數(shù)的所有函數(shù)值中最小的m個(如有重復(fù)的要輸出多個)。
輸入數(shù)據(jù) 第一行輸入兩個正整數(shù)n和m。 以下n行每行三個正整數(shù),其中第i行的三個數(shù)分別位Ai、Bi和Ci。輸入數(shù)據(jù)保證Ai<=10,Bi<=100,Ci<=10 000。
輸出數(shù)據(jù) 輸出將這n個函數(shù)所有可以生成的函數(shù)值排序后的前m個元素。 這m個數(shù)應(yīng)該輸出到一行,用空格隔開。
樣例輸入3 104 5 33 4 51 7 1
樣例輸出9 12 12 19 25 29 31 44 45 54
數(shù)據(jù)規(guī)模 n,m<=10 000題解: 用小頭堆來維護(hù)這些函數(shù)的值..每次取出最小的保存.然后對其更新..O(m log n)
Problem 4 : matrix矩陣乘法
問題描述 一個A x B的矩陣乘以一個B x C的矩陣將得到一個A x C的矩陣,時間復(fù)雜度為A x B x C。矩陣乘法滿足結(jié)合律(但不滿足交換律)。順序給出n個矩陣的大小,請問計算出它們的乘積的最少需要花費(fèi)多少時間。
輸入數(shù)據(jù) 第一行輸入一個正整數(shù)n,表示有n個矩陣。 接下來m行每行兩個正整數(shù)Xi,Yi,其中第i行的兩個數(shù)表示第i個矩陣的規(guī)模為Xi x Yi。所有的Xi、Yi<=100。輸入數(shù)據(jù)保證這些矩陣可以相乘。
輸出數(shù)據(jù) 輸出最少需要花費(fèi)的時間。
樣例輸入310 100100 55 50
樣例輸出7500
樣例說明 順序計算總耗時7500;先算后兩個總耗時75000。
數(shù)據(jù)范圍 n<=100。題解: 動態(tài)規(guī)劃,最小代價子母樹
posted on 2009-07-31 12:46 Vincent 閱讀(1022) 評論(0) 編輯 收藏 引用 所屬分類: 數(shù)據(jù)結(jié)構(gòu)與算法
Powered by: C++博客 Copyright © Vincent