给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 整个解的空间相当于一个二叉树,左边是0,代表不取这个物品,右边是1,代表取这个物品,然后进行dfs,回溯的时候修改。 注意,这里应该有两个剪枝,我这里只写了一个。 #include<iostream> #include<string> #include<cstring> using namespace std; int n,TotCap,bestv…

2015年6月4日 0条评论 3点热度 阅读全文

高中同学让我求8个菜市场和35个销售点(他们之间还会有15个路口)之间35*8=280个组合分别的最短路径及其输出。 最短路水题,嘿嘿。能用自己学到的知识帮助别人解决问题真是极好的享受。 具体注释可以见代码,写的蛮清楚的。 #include<iostream> #include<cstdio> #include<string> #include<cstring> #include<algorithm> using namespace std; #defin…

2015年5月11日 0条评论 7点热度 阅读全文