合纵连横系列之背包的开始

        其实这不算一个黄道吉日,一个真俗称的“大虾”的人物开始了漫长的背包生活。在往日的数学世界里,一段引理、一句定理、一撮例子、一卷练习,就如口嚼核桃一般,说不出的痛楚。那么大虾这个人就可以用一个引理开始:人生的最优解就是通过每一天最优解来达到,因此有了贪心是人一生的追求;比如大虾是一个贼,只带了一个大包,去偷珠宝店,那么他的希望是什么呢?用最少的资源带走最有价值的东东们,只可惜慌忙之中也不知道哪些该放弃哪些该拿下。我们又何尝不是,在遇到真正需要抉择的时候却犹豫不绝,那么或许有方法可以破这个局。

         大虾顺利逃过这次“窃劫”,回到家里做了一件大事:首先把所偷东西按照体积大小排列一遍,再按照价值大小排列一遍,然后用价值所在的名次减去体积所在的名次,列了这样一张表,他心想如果某个珠宝所算负的越大越是值钱的。但是不管怎么算,结果都是0,他在苦思冥想,难道总的来说都是这次偷窃的好坏各半?最终自我安慰的说,事前没有调查珠宝店的均值,而且掰着手指头算了算,幸运的是这次还是负数的多一些,随手还是占了便宜。

         固步自封最后只能在0的世界里。必须得“出”!!!

#include 
#include 
#include 

#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;
}
合纵连横系列之背包的开始_第1张图片

        怎么出?或者说是怎么破?大虾又在为下一次思考了。突然想起一直令中国青年热血沸腾的话题,钓鱼岛。同时大虾也是个火影迷,在每周四的跟剧下,发现其主题,其渲染给国人的是有爱,爱好和平,放弃过去的憎恨。当然大虾没去过日本,不知道日本的小伙伴是否也是火影迷。作为一个盗贼,也开始忧国忧民,思考起来了国家大事,想起最近播放的大秦帝国之纵横,目前的中国更像战国时的秦朝,因为逐渐强大的国力而“东出”,而如今中国不正在出海嘛。虽然现在没有战国时候的战火,但是当前世界的硝烟还在弥漫,偶尔也有军队发到国国之边疆溜溜。

合纵连横系列之背包的开始_第2张图片

        大虾经常上网打游戏,想起来游戏里的战国地图,百度了一下,突然发现:秦不正与现在的正在逐步强大中国类似,齐犹如美国唯利是图,楚是印度自大盲目,魏像日本挑衅不断,韩是朝鲜半岛跟着大国不服输,燕是俄罗斯。简直太像了,新一轮的领导人的外交更像了,如今的军备竞赛,媒体,偶尔的示威,孙子兵法有云:上兵发谋,其次伐交,其次发兵,其下攻城。

对了,破的方法正是张仪的合纵连横。大虾拿着笔发呆或者思考一番,看着这个图,这不正是一张图嘛,当然图中画的是一个简单的图。现在缺少的只是权值,权值乃为谋啊。难道中国目前正在追赶美国,若以秦为起点,齐为终点,便就是秦到齐的单源最短路径?那么该如何定义这张图呢?下期再见。

你可能感兴趣的:(Freely)