摘要:
思路:以物品为结点,物品之间的优惠价格为边权值建图,酋长10000金币当做0号结点,题意就是求图中各结点到0号结点的最短路长度,再加上终点处物品的价值,恰好就是探险家经过这个物品买卖途径所需要付出的金钱。用dijkstra算法求出单源最短路径,从各个结点的最短路径中选出最短的那条就是答案。基本还是经典最短路问题,但做了一点小小变形主要是:1 有结点等级限制,需要枚举等级2 把终点的物品价值计入最短路径中去,并且找最小的最短路径输出3 要注意是单向图,即物品替换关系是单向的Source CodeProblem: 1062User: yangliuACMerMemory: 300KTime: 32 阅读全文
摘要:
C++虚函数与JAVA中抽象函数比较1:java中没有虚函数的概念,但是有抽象函数的概念,用abstract关键字表示,java中抽象函数必须在抽象类中,而且抽象 函数不能有函数体,抽象类不能被实例化,只能由其子类实现抽象函数,如果某个抽象类的子类仍是抽象类,那么该子类不需要实现其父类的抽象函数。2:C++中的有虚函数的概念,用virtual 关键字来表示,每个类都会有一个虚函数表,该虚函数表首先会从父类中继承得到父类的虚函数表, 如果子类中重写了父类的虚函数(不管重写后的函数是否为虚函数),要调用哪个虚函数,是根据当前实际的对象来判断的(不管指针所属类型是否为当前类,有可 能是父类型),指针 阅读全文
摘要:
今天看了看背包九讲,自己写了下0-1背包和完全背包王晓东《计算机算法分析与设计》上面给出的C++实现比较繁琐,相比而言这个版本更加简明给出了测试数据0-1背包问题C++实现/*任务:计算0-1背包问题的最大价值
Sample Input
10 4
2 1
3 3
4 5
7 9
Sample Output
12
0 1 0 1
*/
#include<stdio.h>
#include<string.h>
int c[20][1000];//c[k][y]为只允许装前k种物品,背包总重量不超过y的最大价值
int inumber[21][1000];//inumber[ 阅读全文