矩陣乘法的最佳化

題目地址:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1113昨晚為了最佳化這個題目弄到2點多,今天一早就寫博,我真是太不蛋定了,哈哈。做OJ的朋友都知道快速冪,我就不羅嗦了,我說的主要是矩陣乘法實現層面的最佳化。最開始My Code耗時1156ms,代碼如下:void mat_mul( int (*a)[MAXN], int (*b)[MAXN], int (*c)[MAXN], int n ) {

海盜分金子的原題及答案

海盜的難題(Ian Stewart)    數學的邏輯有時會導致看來十分怪異的結論。一般的規則是,如果邏輯推理沒有漏洞, 那麼結論就必定站得住腳,即使它與你的直覺矛盾。 1998年9月,加利福尼亞州帕洛阿 爾托的Stephen M. Omohundro寄給我一道難題,它恰好就屬於這一類。這難題已經流傳 了至少十年,但是Omohundro對它作了改動,使它的邏輯問題變得分外複雜了。    先來看看此難題原先的形狀。10名海盜搶得了窖藏的100塊金子,並打算瓜分這些戰利

win7下設定 WiFi AP

 開啟windows 7的隱藏功能:虛擬WiFi和SoftAP(即虛擬無線AP),就可以讓電腦變成無線路由器。實現共用上網。1、以管理員身份運行命令提示字元:“開始”---在搜尋欄輸入“cmd”----右鍵以“管理員身份運行”運行命令:netsh wlan set hostednetwork mode=allow ssid=MyPCAP

手工修複受損的隨身碟

前不久,由於靜電或者病毒,我的隨身碟突然無法讀出資料了,開啟時系統提示需要格式化。(如果你想恢複資料,請千萬別格式化,也不要做任何寫操作。切記!!!如果資料很重要,建議直接妥善儲存儲存介質,並送交資料恢複公司。) 我先用資料恢複軟體進行恢複,如:易我檔案恢複嚮導,Easyrecover,getdate

[STL] __gnu_cxx::hash_map使用中的一些問題

今天看《libstdc++ manual

[天文] 一天到底有多長?

前兩天看一個文章講衛星軌道周期如果是90分鐘,那麼一天衛星繞幾圈?(從太空中觀察,而不是從地面上,因為地面上要考慮地球自轉)習慣性的就會計算1440/90 = 16圈,可是文章中用的是1436/90,我在疑惑是否作者筆誤的時候突然靈感一現,好像一天並不是24小時,去網上搜了一下。 以下轉載自搜狗問答:  一天是23小時56分4秒(86,164.1秒),可是我們都是按24小時來生活的!但是有了閏年時間又多了,所以在400年中不是100個閏年而是只有97個,原則是:可以被4整除的年份就是閏年

[ASM] 64bit寄存器的作用

圖中指明了64bit的通用寄存器共有16個,訪問不同大小時有不同名稱。另外就是後面的說明,當一個函數調用另一個函數的時候,可能要儲存一些寄存器狀態,這麼多寄存器,到底由誰儲存,編譯器的指導方針就是:一部分由調用者儲存——caller saved一部分由被調用者儲存——callee saved由調用者儲存的,在call執行前,要將相關寄存器壓棧,然後ret返回後,再彈棧。由被調用者儲存的,在call執行後進入被調用函數,如果函數需要用到某些寄存器,這些寄存器是callee

[CUDA] CUDA下在Host端分配的幾種記憶體模式

Pageable VS Pinned 平時我們使用的記憶體都是Pageable(交換頁)的,而另一個模式就是Pinned(Page-locked),實質是強制讓系統在實體記憶體中完成記憶體申請和釋放的工作,不參與頁交換,從而提高系統效率,需要使用cudaHostAlloc和cudaFreeHost來分配和釋放。     優點        1、頻寬更高        2、核心處理和記憶體拷貝可同時進行        3、可以記憶體映射(mapped)    缺點       

3D引擎研究初始

已經過完了30周歲的生日,如果從零開始做3D引擎,會不會太晚……我在一家遊戲公司就職,一直想從事有挑戰性的工作,近期和老闆商量,希望做3D引擎的研發工作,老闆同意了。我是希望能做出一款舉世聞名的引擎,之前有Quantumas的曇花一現,但是到目前還是沒有一款國人的引擎能夠排上世界前列。可能有人說我是“熱血有志青年”,也可能有人覺得就是“頭腦發熱白癡”,我知道3D引擎的開發實在太難了,涉及到的知識特別繁雜,窮一人畢生之力可能也無法面面俱到,但是我還是想試一試。我現在還不是一個牛人,欠缺的東西還很多

[CUDA] 有關CUDA的一些配置

 曾經裝了winxp64 + nvidia driver19*.* + VS2008(sp1),感覺很卡,所以一直用cuda2.2.最近裝了win7,發現對190以上版本的驅動相容性很好,就裝了cuda2.3,本來想體驗一下VS2010

素數篩法

我也蠢蠢欲動,寫個素數篩法。有一些問題必須先儲存一個素數表,然後查表。這時就要用到素數篩。具體的篩法見代碼,具體原理這兩篇文章有很好的介紹:http://blog.aikilis.com/1299.htmlhttp://blog.aikilis.com/1287.htmlMy Code主要是用bit做合數標記,在素數範圍較大時能夠有效地節省記憶體。#include <stdio.h>#include <math.h>#define MAXN 1000000int

關於PIMPL IDIOM(Opaque Pointer)

今天看到CSDN的一個討論帖:討論如何隱藏DLL標頭檔細節的作法。http://bbs.csdn.net/topics/390414874說實話,我之前也有過類似的疑問,也沒有特別好的想法,後來工作一直沒有遇到過這個需求,就漸漸忘記了,其實某一次在miko的blog裡面看到過pimpl的說法,但是還沒有深刻理解,今天通過這個問題和查閱一些資料,終於瞭解了。下面的觀點基本上都是翻譯自[1],似乎在《Effective

動態規劃——萬用字元匹配演算法

-----Edit by ZhuSenlin HDU設計萬用字元匹配演算法,其中*號可以匹配任意多個字元,?號可以匹配任意一個字元。例如12345和12*、12*?以及12*4?等都匹配。函數原型為:bool match(const char* str, const char* strpattern); 分析:利用動態規劃來解決。此題類似與LCS問題。假設字串A[i]代表前i+1個子字串,B[j]代表前j+1個子字串,那麼A[i]與B[j]是否匹配可以由A[i-1],B[j-1];A[[i-1]

十道面試題

50、一道SPSS筆試題求解題目:輸入四個點的座標,求證四個點是不是一個矩形關鍵點:1.相鄰兩邊斜率之積等於-1,2.矩形邊與座標系平行的情況下,斜率無窮大不能用積判斷。3.輸入四點可能不按順序,需要對四點排序。求縱座標最大的點T,最小的點B,橫座標小的L,大的R。判斷向量TL,TR的數量積,向量BL,BR的數量積,向量TL,BL的數量積51、矩陣式螺旋輸出深度優先遍曆,不斷左轉或右轉52、求兩個或N個數的最大公約數和最小公倍數。gcd53、最長遞增子序列題目描述:設L=是n個不同的實數的序列,

關於機器指令和微指令

最近在看《深入理解電腦系統》,真的很不錯,讓我對CPU又有了更深的瞭解。我們都知道,實際上我們用進階語言編寫的程式,被編譯成可執行程式,存放可執行程式的檔案實際就是一些機器碼,可以被硬體執行。在這一步,我們稱其為機器指令(Machine

面試題: 找出數組中三個只出現一次的數

    題目:數組中有三個數只出現一次,其它的數恰好出現兩次,找出這三個數。     先考慮“只有兩個數出現一次”的情況:可以找到一種方法,將數組劃分為兩部分,且讓這兩個數分別在不同部分,這樣每部分所有數的異或值,恰好分別等於這兩個數。一種簡單的分法就是,先計算出這兩個數的異或值M(等價於求數組中所有數的異或值),求出M值的二進位表示中的最低位1(其它位的1也可以,只不過麻煩點)在 +k位,然後根據 +k位是否為1,將原數組分為兩部分。        回到原題,假設這三個不同的數是:A、B、C,

微軟面試題: 找出二叉樹上任意兩個結點的最近共同父結點。

 找出二叉樹上任意兩個結點的最近共同父結點。   要求兩節點的最近共同父節點(LCA,lowest common ancestor),可以採用樹的後序遍曆。如果這兩個節點不在一條線上,則它們必定分別在所求節點A的左子樹和右子樹上,後序遍曆到第一個滿足這個條件的節點就是所要求的節點A。另外,當這兩個節點在一條線上,所求節點A則是這兩個節點中層次最低的節點的父節點。static bool lca(Node *root, int va, int vb, Node *&result, Node*

從10G個整數中找出中位元

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 從 10G 個整數中找出中位元(假設有 2G 可用記憶體)。   首先想到的是,用計數法來統計。但有 10G 個數,根本沒有那麼多記憶體可用。計數法排序可以認為是桶排序的一種特殊情形(桶間間隔為 1 ),因而考慮增大桶間間隔。 假設這些數都是 32

不要使用庫函數,寫出void *memcpy(void *dst, const void *src, size_t count),其中dst是目標地址,src是源地址。

拷貝的時候要注意源記憶體位址和目的地址之間的關係,就是源記憶體位址和目標地址是否交叉。1,如果沒有交叉的情況,那直接迴圈拷貝就可以了。2,如果有交叉的情況,交叉的情況也分為兩種第一種:這種情況是:src>=dst&&src<=dst+count-1第二種:這種情況就是:dst>src&&dst<src+count-1.下面以數組:int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};為例,進行:memcpy(

伺服器Integration Environmentwamp安裝與常用配置

今天在實驗室服務器上安裝了最新版本的WP: WordPress 3.3 ,並把原來的xampp卸載了,安裝了wamp。出現了兩個錯誤,搜尋後都得到瞭解決,在此記錄一下一、出現 “ 缺少 mysqli 擴充 ” 的錯誤,解決方案:右下角wamp -> PHP -> php.ini:extension_dir =

總頁數: 61357 1 .... 7827 7828 7829 7830 7831 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.