
算法
仲夏夜的开场
这个作者很懒,什么都没留下…
展开
-
汉诺塔问题.递归
递归算法设计就是把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题,在逐步求解小问题后得到大问题的解。关键在于找出递归关系(方程)和递归终止(边界)条件。 递归关系必须是问题越来越简单,规模越来越小。递归边界条件就是所描述问题最简单的、可见的情况。#include<stdio.h>void hanoi(int n,char a,char b,char c)//上面的n个盘子从原创 2016-06-25 11:39:46 · 300 阅读 · 0 评论 -
勇者斗恶龙
有n个头的恶龙,m个骑士可以雇佣, 一个能力值为x的勇士可以砍掉直径不超过x的头,且需要佣金x个金币, 如何雇佣骑士砍掉所有的头使支付金币最少(一个骑士只能砍一个头)int main() { int n,m,temp,sum; int x[20],e[20]; while(scanf("%d %d",&n,&m)&&n!=0&&m!原创 2016-06-12 23:47:37 · 433 阅读 · 0 评论 -
输油管道问题-分治
某石油公司计划建造一条由东向西的主输油管道。该管道 要穿过一个有n口油井的油田。从每口油井都要有一条输 油管道沿最短路经(或南或北)与主管道相连。 如果给定n口油井的位置,即它们的x坐标(东西向)和y 坐标(南北向),应如何确定主管道的最优位置,即使各 油井到主管道之间的输油管道长度总和最小的位置?如果有两口油井,取两口油井南北方向之间的任意位置 如果有三口油井,则取中位数。 n口油井原创 2016-06-26 12:33:25 · 6556 阅读 · 0 评论 -
背包问题-贪心
背包载重量为M,现有n个物品,重量为w,价值为v,求背包能够装载物品的最大价值(物品能够分割) 物品如果能够分割用贪心法,不能分割用动态规划方法#include<stdio.h>#include<algorithm>using namespace std;struct Object{ double w,v,r;//重量weight,价值value,重量与价值的比ratio} obj原创 2016-06-27 09:46:46 · 322 阅读 · 0 评论 -
数塔问题
一个数塔,从顶层到底层或从底层到顶层,在每一个节点可以选择向左走或是向右走,要求找出一条路径,是路径上的数值和最大。#include<stdio.h>#define N 50int a[N][N],b[N][N];int Max(int a,int b){ if(a>=b) return a; else return b;}int main()原创 2016-06-27 12:16:20 · 489 阅读 · 0 评论