• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            The Fourth Dimension Space

            枯葉北風寒,忽然年以殘,念往昔,語默心酸。二十光陰無一物,韶光賤,寐難安; 不畏形影單,道途阻且慢,哪曲折,如渡飛湍。斬浪劈波酬壯志,同把酒,共言歡! -如夢令

            #

            C++內嵌匯編相關

            一、 優點

                    使用內聯匯編可以在 C/C++ 代碼中嵌入匯編語言指令,而且不需要額外的匯編和連接步驟。在 Visual C++ 中,內聯匯編是內置的編譯器,因此不需要配置諸如 MASM 一類的獨立匯編工具。這里,我們就以 Visual Studio .NET 2003 為背景,介紹在 Visual C++ 中使用內聯匯的相關知識(如果是早期的版本,可能會有些許出入)。

                    內聯匯編代碼可以使用 C/C++ 變量和函數,因此它能非常容易地整合到 C/C++ 代碼中。它能做一些對于單獨使用 C/C++ 來說非常笨重或不可能完成的任務。

                    內聯匯編的用途包括:

                    * 使用匯編語言編寫特定的函數;
            * 編寫對速度要求非常較高的代碼;
            * 在設備驅動程序中直接訪問硬件;
            * 編寫 naked 函數的初始化和結束代碼。


            二、 關鍵字

                    使用內聯匯編要用到 __asm 關鍵字,它可以出現在任何允許 C/C++ 語句出現的地方。我們來看一些例子:

                    * 簡單的 __asm 塊:

                        __asm
            {
            MOV AL, 2
            MOV DX, 0xD007
            OUT AL, DX
            }

                    * 在每條匯編指令之前加 __asm 關鍵字:

                        __asm MOV AL, 2
            __asm MOV DX, 0xD007
            __asm OUT AL, DX

                    * 因為 __asm 關鍵字是語句分隔符,所以可以把多條匯編指令放在同一行:

                        __asm MOV AL, 2      __asm MOV DX, 0XD007      __asm OUT AL, DX

                    顯然,第一種方法與 C/C++ 的風格很一致,并且把匯編代碼和 C/C++ 代碼清楚地分開,還避免了重復輸入 __asm 關鍵字,因此推薦使用第一種方法。

                    不像在 C/C++ 中的“{}”,__asm 塊的“{}”不會影響 C/C++ 變量的作用范圍。同時,__asm 塊可以嵌套,而且嵌套也不會影響變量的作用范圍。

                    為了與低版本的 Visual C++ 兼容,_asm 和 __asm 具有相同的意義。另外,Visual C++ 支持標準 C++ 的 asm 關鍵字,但是它不會生成任何指令,它的作用僅限于使編譯器不會出現編譯錯誤。要使用內聯匯編,必須使用 __asm 而不是 asm 關鍵字。


            三、 匯編語言

            1. 指令集

                    內聯匯編支持 Intel Pentium 4 和 AMD Athlon 的所有指令。更多其它處理器的指令可以通過 _EMIT 偽指令來創建(_EMIT 偽指令說明見下文)。

            2. MASM 表達式

                    在內聯匯編代碼中,可以使用所有的 MASM 表達式(MASM 表達式是指用來計算一個數值或一個地址的操作符和操作數的組合)。

            3. 數據指示符和操作符

                    雖然 __asm 塊中允許使用 C/C++ 的數據類型和對象,但它不能使用 MASM 指示符和操作符來定義數據對象。這里特別指出,__asm 塊中不允許 MASM 中的定義指示符(DB、DW、DD、DQ、DT 和 DF),也不允許使用 DUP 和 THIS 操作符。MASM 中的結構和記錄也不再有效,內聯匯編不接受 STRUC、RECORD、WIDTH 或者 MASK。

            4. EVEN 和 ALIGN 指示符

                    盡管內聯匯編不支持大多數 MASM 指示符,但它支持 EVEN 和 ALIGN。當需要的時候,這些指示符在匯編代碼里面加入 NOP 指令(空操作)使標號對齊到特定邊界。這樣可以使某些處理器取指令時具有更高的效率。

            5. MASM 宏指示符

                    內聯匯編不是宏匯編,不能使用 MASM 宏指示符(MACRO、REPT、IRC、IRP 和 ENDM)和宏操作符(<>、!、&、% 和 .TYPE)。

            6. 段

                    必須使用寄存器而不是名稱來指明段(段名稱“_TEXT”是無效的)。并且,段跨越必須顯式地說明,如 ES:[EBX]。

            7. 類型和變量大小

                    在內聯匯編中,可以用 LENGTH、SIZE 和 TYPE 來獲取 C/C++ 變量和類型的大? ?

                    * LENGTH 操作符用來取得 C/C++ 中數組的元素個數(如果不是一個數組,則結果為 1)。
            * SIZE 操作符可以獲取 C/C++ 變量的大小(一個變量的大小是 LENGTH 和 TYPE 的乘積)。
            * TYPE 操作符可以返回 C/C++ 類型和變量的大小(如果變量是一個數組,它得到的是數組中單個元素的大小)。

                    例如,程序中定義了一個 8 維的整數型變量:

                        int iArray[8];

                    下面是 C 和匯編表達式中得到的 iArray 及其元素的相關值:

                        __asm                       C                                       Size

                        LENGTH iArray               sizeof(iArray)/sizeof(iArray[0])        8
            SIZE iArray                 sizeof(iArray)                          32
            TYPE iArray                 sizeof(iArray[0])                       4

            8. 注釋

                    內聯匯編中可以使用匯編語言的注釋,即“;”。例如:

                        __asm MOV EAX, OFFSET pbBuff      ; Load address of pbBuff

                    因為 C/C++ 宏將會展開到一個邏輯行中,為了避免在宏中使用匯編語言注釋帶來的混亂,內聯匯編也允許使用 C/C++ 風格的注釋。

            9. _EMIT 偽指令

                    _EMIT 偽指令相當于 MASM 中的 DB,但是 _EMIT 一次只能在當前代碼段(.text 段)中定義一個字節。例如:

                        __asm
            {
            JMP _CodeLabel

                            _EMIT 0x00            ; 定義混合在代碼段的數據
            _EMIT 0x01

                        _CodeLabel:               ; 這里是代碼
            _EMIT 0x90            ; NOP指令
            }

            10. 寄存器使用

                    一般來說,不能假定某個寄存器在 __asm 塊開始的時候有已知的值。寄存器的值將不能保證會從 __asm 塊保留到另外一個 __asm 塊中。

                    如果一個函數聲明為 __fastcall 調用方式,則其參數將通過寄存器而不是堆棧來傳遞。這將會使 __asm 塊產生問題,因為函數無法被告知哪個參數在哪個寄存器中。如果函數接收了 EAX 中的參數并立即儲存一個值到 EAX 中的話,原來的參數將丟失掉。另外,在所有聲明為 __fastcall 的函數中,ECX 寄存器是必須一直保留的。為了避免以上的沖突,包含 __asm 塊的函數不要聲明為 __fastcall 調用方式。

                    * 提示:如果使用 EAX、EBX、ECX、EDX、ESI 和 EDI 寄存器,你不需要保存它。但如果你用到了 DS、SS、SP、BP 和標志寄存器,那就應該用 PUSH 保存這些寄存器。

                    * 提示:如果程序中改變了用于 STD 和 CLD 的方向標志,必須將其恢復到原來的值。


            四、 使用 C/C++ 元素

            1. 可用的 C/C++ 元素

                    C/C++ 與匯編語言可以混合使用,在內聯匯編中可以使用 C/C++ 變量以及很多其它的 C/C++ 元素,包括:

                    * 符號,包括標號、變量和函數名;
            * 常量,包括符號常量和枚舉型成員;
            * 宏定義和預處理指示符;
            * 注釋,包括“/**/”和“//”;
            * 類型名,包括所有 MASM 中合法的類型;
            * typedef 名稱,通常使用 PTR 和 TYPE 操作符,或者使用指定的的結構或枚舉成員。

                    在內聯匯編中,可以使用 C/C++ 或匯編語言的基數計數法。例如,0x100 和 100H 是相等的。

            2. 操作符使用

                    內聯匯編中不能使用諸如“<<”一類的 C/C++ 操作符。但是,C/C++ 和 MASM 共有的操作符(比如“*”和“[]”操作符),都被認為是匯編語言的操作符,是可以使用的。舉個例子:

                        int iArray[10];

                        __asm MOV iArray[6], BX                 ; Store BX at iArray + 6 (Not scaled)
            iArray[6] = 0;                          // Store 0 at iArray+12 (Scaled)

                    * 提示:在內聯匯編中,可以使用 TYPE 操作符使其與 C/C++ 一致。比如,下面兩條語句是一樣的:

                        __asm MOV iArray[6 * TYPE int], 0       ; Store 0 at iArray + 12
            iArray[6] = 0;                          // Store 0 at iArray + 12

            3. C/C++ 符號使用

                    在 __asm 塊中可以引用所有在作用范圍內的 C/C++ 符號,包括變量名稱、函數名稱和標號。但是不能訪問 C++ 類的成員函數。

                    下面是在內聯匯編中使用 C/C++ 符號的一些限制:

                    * 每條匯編語句只能包含一個 C/C++ 符號。在一條匯編指令中,多個符號只能出現在 LENGTH、TYPE 或 SIZE 表達式中。
            * 在 __asm 塊中引用函數必須先聲明。否則,編譯器將不能區別 __asm 塊中的函數名和標號。
            * 在 __asm 塊中不能使用對于 MASM 來說是保留字的 C/C++ 符號(不區分大小寫)。MASM 保留字包含指令名稱(如 PUSH)和寄存器名稱(如 ESI)等。
            * 在 __asm 塊中不能識別結構和聯合標簽。

            4. 訪問 C/C++ 中的數據

                    內聯匯編的一個非常大的方便之處是它可以使用名稱來引用 C/C++ 變量。例如,如果 C/C++ 變量 iVar 在作用范圍內:

                        __asm MOV EAX, iVar      ; Stores the value of iVar in EAX

                    如果 C/C++ 中的類、結構或者枚舉成員具有唯一的名稱,則在 __asm 塊中可以只通過成員名稱來訪問(省略“.”操作符之前的變量名或 typedef 名稱)。然而,如果成員不是唯一的,你必須在“.”操作符之前加上變量名或 typedef 名稱。例如,下面的兩個結構都具有 SameName 這個成員變量:

                        struct FIRST_TYPE
            {
            char *pszWeasel;
            int SameName;
            };

                        struct SECOND_TYPE
            {
            int iWonton;
            long SameName;
            };

                    如果按下面方式聲明變量:

                        struct FIRST_TYPE ftTest;
            struct SECOND_TYPE stTemp;

                    那么,所有引用 SameName 成員的地方都必須使用變量名,因為 SameName 不是唯一的。另外,由于上面的 pszWeasel 變量具有唯一的名稱,你可以僅僅使用它的成員名稱來引用它:

                        __asm
            {
            MOV EBX, OFFSET ftTest
            MOV ECX, [EBX]ftTest.SameName           ; 必須使用“ftTest”
            MOV ESI, [EBX]. pszWeasel               ; 可以省略“ftTest”
            }

                    * 提示:省略變量名僅僅是為了書寫代碼方便,生成的匯編指令還是一樣的。

            5. 用內聯匯編寫函數

                    如果用內聯匯編寫函數的話,要傳遞參數和返回一個值都是非常容易的。看下面的例子,比較一下用獨立匯編和內聯匯編寫的函數:

                        ; PowerAsm.asm
            ; Compute the power of an integer

                        PUBLIC          GetPowerAsm
            _TEXT           SEGMENT WORD PUBLIC 'CODE'
            GetPowerAsm PROC
            PUSH        EBP                 ; Save EBP
            MOV         EBP, ESP            ; Move ESP into EBP so we can refer
            ; to arguments on the stack
            MOV         EAX, [EBP+4]        ; Get first argument
            MOV         ECX, [EBP+6]        ; Get second argument
            SHL         EAX, CL             ; EAX = EAX * (2 ^ CL)
            POP         EBP                 ; Restore EBP
            RET                         ; Return with sum in EAX
            GetPowerAsm ENDP
            _TEXT           ENDS
            END

                    C/C++ 函數一般用堆棧來傳遞參數,所以上面的函數中需要通過堆棧位置來訪問它的參數(在 MASM 或其它一些匯編工具中,也允許通過名稱來訪問堆棧參數和局部堆棧變量)。

                    下面的程序是使用內聯匯編寫的:

                        // PowerC.c

                        #i nclude <Stdio.h>

                        int GetPowerC(int iNum, int iPower);

                        int main()
            {
            printf("3 times 2 to the power of 5 is %d\n", GetPowerC( 3, 5));
            }

                        int GetPowerC(int iNum, int iPower)
            {
            __asm
            {
            MOV EAX, iNum       ; Get first argument
            MOV ECX, iPower ; Get second argument
            SHL EAX, CL         ; EAX = EAX * (2 to the power of CL)
            }
            // Return with result in EAX
            }

                    使用內聯匯編寫的 GetPowerC 函數可以通過參數名稱來引用它的參數。由于 GetPowerC 函數沒有執行 C 的 return 語句,所以編譯器會給出一個警告信息,我們可以通過 #pragma warning 禁止生成這個警告。

                    內聯匯編的其中一個用途是編寫 naked 函數的初始化和結束代碼。對于一般的函數,編譯器會自動幫我們生成函數的初始化(構建參數指針和分配局部變量等)和結束代碼(平衡堆棧和返回一個值等)。 使用內聯匯編,我們可以自己編寫干干凈凈的函數。當然,此時我們必須自己動手做一些有關函數初始化和掃尾的工作。例如:

                        void __declspec(naked) MyNakedFunction()
            {
            // Naked functions must provide their own prolog.
            __asm
            {
            PUSH EBP
            MOV ESP, EBP
            SUB ESP, __LOCAL_SIZE
            }

                            .
            .
            .

                            // And we must provide epilog.
            __asm
            {
            POP EBP
            RET
            }
            }

            6. 調用 C/C++ 函數

                    內聯匯編中調用聲明為 __cdecl 方式(默認)的 C/C++ 函數必須由調用者清除參數堆棧,下面是一個調用 C/C++ 函數例子:

                        #i nclude <Stdio.h>

                        char szFormat[] = "%s %s\n";
            char szHello[] = "Hello";
            char szWorld[] = " world";

                        void main()
            {
            __asm
            {
            MOV         EAX, OFFSET szWorld
            PUSH        EAX
            MOV         EAX, OFFSET szHello
            PUSH        EAX
            MOV         EAX, OFFSET szFormat
            PUSH        EAX
            CALL        printf

                                // 壓入了 3 個參數在堆棧中,調用函數之后要調整堆棧
            ADD         ESP, 12
            }
            }

                    * 提示:參數是按從右往左的順序壓入堆棧的。

                    如果調用 __stdcall 方式的函數,則不需要自己清除堆棧。因為這種函數的返回指令是 RET n,會自動清除堆棧。大多數 Windows API 函數均為 __stdcall 調用方式(僅除 wsprintf 等幾個之外),下面是一個調用 MessageBox 函數的例子:

                        #i nclude <Windows.h>

                        TCHAR g_tszAppName[] = TEXT("API Test");

                        void main()
            {
            TCHAR tszHello[] = TEXT("Hello, world!");

                            __asm
            {
            PUSH        MB_OK OR MB_ICONINFORMATION
            PUSH        OFFSET g_tszAppName             ; 全局變量用 OFFSET
            LEA         EAX, tszHello                   ; 局部變量用 LEA
            PUSH        EAX
            PUSH        0
            CALL        DWORD PTR [MessageBox]      &

            //****************************************************************************

            轉自:http://hi.baidu.com/xocoder/blog/item/55dd5a12975d6a28dd5401e7.html

            posted @ 2010-04-04 02:11 abilitytao 閱讀(536) | 評論 (0)編輯 收藏

            TOPCODER SRM 466 小結

                 摘要: 第一題 當成背包瞬秒。第二題 有個結論 就是只有完全平方數才有奇數個因子, 開始只是覺得能過樣例,不一定對。后來展開公式才發現確實是這么一回事因為 如果 一個數n=a1^k1*a2^k2*a3^k3....就是將它進行素因子分解那么它的約束個數g(n)=(k1+1)*(k2+1)*(k3+1)*....(kn+1)如果要為奇數,那么所有括號里的數均為奇數,顯然k1 to kn為偶數,該數必為完全平...  閱讀全文

            posted @ 2010-04-04 01:47 abilitytao 閱讀(1433) | 評論 (0)編輯 收藏

            蘇東坡突圍 —余秋雨

                 摘要: 這便是黃州赤壁。赭紅色的陡峭石坡直逼著浩蕩東去的大江,坡上有險道可以攀登俯瞰,江面有小船可供蕩槳仰望,地方不大,但一俯一仰之間就有了氣勢,有了偉大與渺小的比照,有了視覺空間的變異和倒錯,因此也就有了游觀和冥思的價值。客觀景物只提供一種審美可能,而不同的游人才使這種可能獲得不同程度的實現。蘇東坡以自己的精神力量給黃州的自然景物注入了意味,而正是這種意味,使無生命的自然形式變成美。因此不妨說,蘇東坡不僅是黃州自然美的發現者,而且也是黃州自然美的確定者和構建者。
              閱讀全文

            posted @ 2010-04-03 21:04 abilitytao 閱讀(257) | 評論 (1)編輯 收藏

            成熟 余秋雨

            成熟,是——

            一種明亮而不刺眼的光輝,

            一種圓潤而不膩耳的音響,

            一種不再需要對別人察言觀色的從容,

            一種終于停止向周圍申訴求助的大氣,

            一種不理會哄鬧的微笑,

            一種洗涮了偏激的淡漠,

            一種無須聲張的厚實,

            一種并不陡峭的高度。

            勃郁的豪情發過的酵,尖利的山峰收住了勁,湍急的溪流匯成了湖。

            posted @ 2010-04-03 21:00 abilitytao 閱讀(250) | 評論 (4)編輯 收藏

            光庭杯 比賽小節

            發現自己果然還是處在簡單題,中等題能很快搞定,但是難題就是出不來的階段,這可能和平時訓練的題目難度有關。淡定。。。加油。。。
            POJ 1830, 高斯消元

            posted @ 2010-04-03 19:04 abilitytao 閱讀(209) | 評論 (0)編輯 收藏

            向量的旋轉

            向量的旋轉

            基礎的2-D繞原點旋轉

            在2-D的迪卡爾坐標系中,一個位置向量的旋轉公式可以由三角函數的幾何意義推出。比如上圖所示是位置向量R逆時針旋轉角度B前后的情況。在左圖中,我們有關系:

              x0 = |R| * cosA

              y0 = |R| * sinA

              =>

              cosA = x0 / |R|

              sinA = y0 / |R|

              在右圖中,我們有關系:

              x1 = |R| * cos(A+B)

              y1 = |R| * sin(A+B)

              其中(x1, y1)就是(x0, y0)旋轉角B后得到的點,也就是位置向量R最后指向的點。我們展開cos(A+B)和sin(A+B),得到

              x1 = |R| * (cosAcosB - sinAsinB)

              y1 = |R| * (sinAcosB + cosAsinB)

              現在把

              cosA = x0 / |R|

              sinA = y0 / |R|

              代入上面的式子,得到

              x1 = |R| * (x0 * cosB / |R| - y0 * sinB / |R|)

              y1 = |R| * (y0 * cosB / |R| + x0 * sinB / |R|)

              =>

              x1 = x0 * cosB - y0 * sinB

              y1 = x0 * sinB + y0 * cosB

              這樣我們就得到了2-D迪卡爾坐標下向量圍繞圓點的逆時針旋轉公式。順時針旋轉就把角度變為負:

              x1 = x0 * cos(-B) - y0 * sin(-B)

              y1 = x0 * sin(-B) + y0 * cos(-B)

              =>

              x1 = x0 * cosB + y0 * sinB

              y1 = -x0 * sinB + y0 * cosB

              現在我要把這個旋轉公式寫成矩陣的形式,有一個概念我簡單提一下,平面或空間里的每個線性變換(這里就是旋轉變換)都對應一個矩陣,叫做變換矩陣。對一個點實施線性變換就是通過乘上該線性變換的矩陣完成的。好了,打住,不然就跑題了。

            所以2-D旋轉變換矩陣就是:

            [cosA  sinA]      [cosA -sinA]
            [-sinA cosA] 或者 [sinA cosA]

              我們對點進行旋轉變換可以通過矩陣完成,比如我要點(x, y)繞原點逆時針旋轉:

                      [cosA  sinA]
            [x, y] x  [-sinA cosA] = [x*cosA-y*sinA  x*sinA+y*cosA]
            為了編程方便,我們把它寫成兩個方陣

            [x, y]   [cosA  sinA]   [x*cosA-y*sinA  x*sinA+y*cosA]
            [0, 0] x [-sinA cosA] = [0                        ]

            也可以寫成

            [cosA -sinA]   [x 0]   [x*cosA-y*sinA  0]
            [sinA  cosA] x [y 0] = [x*sinA+y*cosA  0]

            三、2-D的繞任一點旋轉

              下面我們深入一些,思考另一種情況:求一個點圍繞任一個非原點的中心點旋轉。

              我們剛剛導出的公式是圍繞原點旋轉的公式,所以我們要想繼續使用它,就要把想要圍繞的那個非原點的中心點移動到原點上來。按照這個思路,我們先將該中心點通過一個位移向量移動到原點,而圍繞點要保持與中心點相對位置不變,也相應的按照這個位移向量位移,此時由于中心點已經移動到了圓點,就可以讓同樣位移后的圍繞點使用上面的公式來計算旋轉后的位置了,計算完后,再讓計算出的點按剛才的位移向量逆位移,就得到圍繞點繞中心點旋轉一定角度后的新位置了。看下面的圖


             


            現在求左下方的藍色點圍繞紅色點旋轉一定角度后的新位置。由于紅色點不在原點,所以可以通過紅色向量把它移動到原點,此時藍色的點也按照這個向量移動,可見,紅色和藍色點的相對位置沒有變。現在紅色點在原點,藍色點可以用上面旋轉變換矩陣進行旋轉,旋轉后的點在通過紅色向量的的逆向量回到它實際圍繞下方紅色點旋轉后的位置。
            在這個過程中,我們對圍繞點進行了三次線性變換:位移變換-旋轉變換-位移變換,我們把它寫成矩陣形式:
            設紅色向量為(rtx, rty)

            [x y 1]   [1    0]   [cosA  sinA 0]   [1      0]   [x' y' -]
            [0 1 0] x [0    0] x [-sinA cosA 0] x [0      0] = [-  -]
            [0 0 1]   [rtx rty 1]   [0       1]   [-rtx -rty 1]   [-  -]

              最后得到的矩陣的x'和y'就是我們旋轉后的點坐標。

            線性變換 , 呂新民 你連這么簡單的東西都將不清楚。。。。

            posted @ 2010-04-03 18:58 abilitytao 閱讀(1464) | 評論 (0)編輯 收藏

            issue 43 多看看 多記記

            43"To be an effective leader, a public official must maintain the highest ethical and moral standards."
               is a public official must maintain the highest ethical and moral standards to be an effective leader ,as the author asserts? I think we should take it to the case-to-case analysis.

               Admittedly, in some cases, such like monarchy countries and religious nations, high ethical and moral standards are remarkable for  leaders. Becaue those leaders are not only the politicians but also the spiritual leader. Their power don’t come from the Democratic elections ,but the religious belief. If their image of ethics collapse, it will threaten the leadership directly. Like dalai lama…Scandals on dalai lama

            tends to render social chaos and breakdown of people's belief, which will even lead to a war at last. Therefore, high ethical and moral standards for spiritual or religious leaders are not only crucial, but also necessary.吹。。。。

               But in the democracy society, which operates by its scientific belief ,the leader’s personality or Moral Charm is not that significant as the ancient time. The really thing that count is the leader’s governing philosophy, the Economic Policy which can bring his people to a better life. He moral or ethics charm is just a private thing which are not very crucial.

            So , the leaders in the democracy system, is just a screw in a large machine , which could be replaced by any suitable person and it has not much thing to do with the leader’s moral image in he public. Like Bill Clinton ,who are always mentioned by his sex scandal, is of course a good leader in the US history .

            On the other hand, even in democratic societies, moral charisma is useful and helpful for political leaders. A candidate with high moral reputation is more likely to win a campaign, which is the beginning to become an effective leader. When it comes to a decision maker, if he or she is famous for good morality, the policies are usually easier to be accepted by public. Let's take the Chinese Premier Wen (Premier Wen in China) as an example, who played an important role in the rescue in Sichuan Earthquake which killed (claimed) more than seventy thousand lives in 2008(災難常用句型:e.g The hurricane claimed more than 5000 lives。颶風奪去了5000人的生命). His mercy and devoted figure moved millions of people all over the world. As a result, his leadership in rescuing activity    rescue is convincing and his orders are implemented efficiency…Efficiently

             which saved thousands of people buried underground in time. In this case, there is no doubt that the leader's personal moral charm improves the effect of Premier Wen's leadership.

            In the final analysis , the ethic and morality of public leader could be very significant in some cases , especially to that spiritual leaders and religious leaders and it also benefits the leaders from democratic society as well. However, we have to notice that the real standard to evaluate a leader should base on his or her political achievement.

             

            posted @ 2010-04-03 11:12 abilitytao 閱讀(348) | 評論 (0)編輯 收藏

            the communication with a great mind ,my points.

            Admittedly, every person is different and just as the saying goes there are no two leaves that are exectly the same ,leading the thought differs ,too. But on the other hand, I have to point out that it is perhaps no need to process such a communication when the answer is clear , the response is identified according to the significant principle that I have transmited.

            posted @ 2010-04-02 14:00 abilitytao 閱讀(158) | 評論 (0)編輯 收藏

            特殊用途 Special ues for SGY

            呵呵 看來用不著了, 此貼留作紀念^_^

            posted @ 2010-03-31 22:12 abilitytao 閱讀(178) | 評論 (0)編輯 收藏

            POJ 3680 Intervals 最小費用流 神跡一般的構圖

            剛開始做的時候狂RE啊,還以為是自己的SPFA有問題,檢查了很長時間...
            更為神跡的是,System 居然返回一個我從來沒有看到過的結果,囧~

            做法是 先把所有的區間離散化 ,也就是只留端點,然后排序,去重,標號。
            增加超級源超級匯s,t.
            假設剩下n個點, 加上超級源超級匯是n+2個。超級源為0,匯為n+1.
            從0開始,順序建一條流量為k,費用為0的邊,將所有點串起來。然后再根據所輸入邊的信息,找到對應點的位置,連一條流量是1,費用是-w的邊,最后從s到t做最小費用。

            比如說
            3 1
            1 3 2
            2 3 4
            3 4 8

            將 1,3,2,3,3,4排序
            變成 1 2 3 3 3 4
            去重 1 2 3 4
            然后 0->1 1->2 2->3 3->4 4->5 建邊
            再 1->3 2->3 3->4 建邊 即可
            注意這里只是數字剛好和位置相同 實際應該用位置信息連邊 這個做過網絡流的都知道吧 ,最后Minflow即可。

            不過我還沒有想明白為什么可以這樣做,它的正確性如何證明呢?

            posted @ 2010-03-30 19:45 abilitytao 閱讀(2084) | 評論 (1)編輯 收藏

            僅列出標題
            共42頁: First 16 17 18 19 20 21 22 23 24 Last 
            亚洲欧洲精品成人久久曰影片| 国内精品久久久久影院优| 99久久精品国产综合一区| 青青草国产精品久久久久| 免费一级欧美大片久久网| 午夜精品久久久久| 久久综合丁香激情久久| 亚洲欧洲久久久精品| 国产成年无码久久久久毛片| 久久人人爽人人爽人人片AV麻豆 | 久久er热视频在这里精品| 丁香五月综合久久激情| 精品久久久久久国产| 国产精品99久久精品爆乳| 亚洲精品乱码久久久久久蜜桃不卡 | 久久久久久亚洲AV无码专区| 精品久久久久中文字幕一区| 亚洲色婷婷综合久久| 日韩中文久久| 国内精品伊人久久久久网站| 久久狠狠高潮亚洲精品| 久久久国产打桩机| 精品国产乱码久久久久久浪潮| 中文字幕久久精品无码| 日本精品一区二区久久久| 国产产无码乱码精品久久鸭| 久久人人爽人人爽人人av东京热| 国产ww久久久久久久久久| 97久久香蕉国产线看观看| 久久精品亚洲中文字幕无码麻豆| 久久久久亚洲精品日久生情| 久久人人爽人人澡人人高潮AV| 国产亚州精品女人久久久久久 | 人妻系列无码专区久久五月天| 久久美女人爽女人爽| 2020久久精品国产免费| 久久棈精品久久久久久噜噜| 一本久久a久久精品亚洲| 久久99热这里只有精品国产| 久久这里的只有是精品23| 一本色道久久综合|