合縱連橫系列之揹包的開始

        其實這不算一個黃道吉日,一個真俗稱的“大蝦”的人物開始了漫長的揹包生活。在往日的數學世界裏,一段引理、一句定理、一撮例子、一卷練習,就如口嚼核桃一般,說不出的痛楚。那麼大蝦這個人就可以用一個引理開始:人生的最優解就是通過每一天最優解來達到,因此有了貪心是人一生的追求;比如大蝦是一個賊,只帶了一個大包,去偷珠寶店,那麼他的希望是什麼呢?用最少的資源帶走最有價值的東東們,只可惜慌忙之中也不知道哪些該放棄哪些該拿下。我們又何嘗不是,在遇到真正需要抉擇的時候卻猶豫不絕,那麼或許有方法可以破這個局。

         大蝦順利逃過這次“竊劫”,回到家裏做了一件大事:首先把所偷東西按照體積大小排列一遍,再按照價值大小排列一遍,然後用價值所在的名次減去體積所在的名次,列了這樣一張表,他心想如果某個珠寶所算負的越大越是值錢的。但是不管怎麼算,結果都是0,他在苦思冥想,難道總的來說都是這次偷竊的好壞各半?最終自我安慰的說,事前沒有調查珠寶店的均值,而且掰着手指頭算了算,幸運的是這次還是負數的多一些,隨手還是佔了便宜。

         固步自封最後只能在0的世界裏。必須得“出”!!!

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define NUM 10

void sort(int *val, int *index, int num)
{
    int i, j, k, temp, x[NUM];
    for (i = 0; i < num; i++)
    {
        x[i] = val[i];
    }
    for (i = 0; i < num - 1; i++)
    {
        k = i;
        for (j = i + 1; j < num; j++)
            if(x[k] < x[j])  k = j;
        if (i != k)
        {
            temp = x[i];
            x[i] = x[k];
            x[k] = temp;
        }
    }
    for (i = k = 0; i < num; i++)
    {
        if (i < num -1 && x[i] == x[i+1]) continue;
        for (j = 0; j < num; j++)
        {
            if (x[i] == val[j])  index[k++] = j + 1;
        }
    }
    for (i = 0; i < num; i++)
        printf("x[%d] = %d   index[%d] = %d\n", i, x[i], i, index[i]);
}

int main()
{
    int i, sum = 0;
    int index[NUM], value[NUM];
    srand((unsigned int)time(NULL));
    // 隨機偷的東西,爲了方便,隨出來的就是按照體積大小排列的,其值是價值
    for (i = 0; i < NUM; i++)
    {
        value[i] = rand() % 10;
        printf("value[%d] = %d\n", i, value[i]);
    }
    // 回家排序
    sort(value, index, NUM);
    // 此時i=0是價值最大的珠寶,計算差值,並計算和
    for (i = 0; i < NUM; i++)
    {
        index[i] = i - index[i] + 1;
        sum += index[i];
        printf("index[%d] = %d\n", i, index[i]);
    }
    printf("sum = %d\n", sum);
    return 0;
}

        怎麼出?或者說是怎麼破?大蝦又在爲下一次思考了。突然想起一直令中國青年熱血沸騰的話題,釣魚島。同時大蝦也是個火影迷,在每週四的跟劇下,發現其主題,其渲染給國人的是有愛,愛好和平,放棄過去的憎恨。當然大蝦沒去過日本,不知道日本的小夥伴是否也是火影迷。作爲一個盜賊,也開始憂國憂民,思考起來了國家大事,想起最近播放的大秦帝國之縱橫,目前的中國更像戰國時的秦朝,因爲逐漸強大的國力而“東出”,而如今中國不正在出海嘛。雖然現在沒有戰國時候的戰火,但是當前世界的硝煙還在瀰漫,偶爾也有軍隊發到國國之邊疆溜溜。


        大蝦經常上網打遊戲,想起來遊戲裏的戰國地圖,百度了一下,突然發現:秦不正與現在的正在逐步強大中國類似,齊猶如美國唯利是圖,楚是印度自大盲目,魏像日本挑釁不斷,韓是朝鮮半島跟着大國不服輸,燕是俄羅斯。簡直太像了,新一輪的領導人的外交更像了,如今的軍備競賽,媒體,偶爾的示威,孫子兵法有云:上兵發謀,其次伐交,其次發兵,其下攻城。

對了,破的方法正是張儀的合縱連橫。大蝦拿着筆發呆或者思考一番,看着這個圖,這不正是一張圖嘛,當然圖中畫的是一個簡單的圖。現在缺少的只是權值,權值乃爲謀啊。難道中國目前正在追趕美國,若以秦爲起點,齊爲終點,便就是秦到齊的單源最短路徑?那麼該如何定義這張圖呢?下期再見。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章