C语言算法设计之最佳游览路线问题

该博客探讨了如何使用C语言设计算法,来解决一个旅游景区的最佳游览路线问题。在这个问题中,旅游街为单行道,林荫道双向可行,每条旅游街的相邻路口之间有一个游览分值。目标是找到一条分值总和最大的路线。博客可能涉及图论和动态规划等概念。

某旅游景区的街道成网格状。其中东西向的街道都是旅游街,南北向的街道都是林荫道。由于游客众多,旅游街规定为单行道,游客在旅游街上只能从西向东走,在林荫道上则既可从南向北,又可从北向南走。阿隆想到这个旅游街区游玩。他的好友阿福给了他一些建议,用分值表示所有旅游街相邻两个路口之间的街道值得游览程度,分值是从-100到100的整数,所有林荫道不打分。所有分值不能全是负分。阿隆可以从任何一个路口开始游览,在任何一个路口结束游览。请你写一个程序,帮助阿龙找一条最佳的旅游路线,使得这条路线的所有分值总和最大。

 

/**
 * Created by:SaToPenDragon
 * Date:2019-11-20 15:53
 * ClassName:findSubCoin
 * Description:贪婪算法求最佳游览路径
 */

#include<cstdio>
 /** 
  * @param crossing: 选择开始的路口
  * @param max:分值最大的那个路线
  * @param size:数组max的长度
  * @Description: 打印路线
  */ 
void showWay(int crossing, int *max, int size) {  // 设从左到右路口索引从0开始
    printf("The beat way is :");
    for (int i = crossing; i < size; i++) {
        printf("%d >> ", max[i]);
    }
    printf("\b\b\b  ");  // 删除末尾的>>space
}

int main() {
    int size[2] = {3, 5};
    int route[3][5] = {
  
  {-50, -47, 36,  -30, -23},
                       {17,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值