贪吃蛇

现在有一个N*M(N,M=100)的方形矩形,在这个矩形的每一个方格上都放有一个随机值,一条可爱的小蛇从矩形的 左上角开始出发,每次移动都只能移动一格,向右或向下,而每到达一格贪吃的小蛇都会吧该位置上的值吃个一干二净,直到到达右下角时停止。而贪吃的小蛇不怕撑死,它只想吃到最多,并输出路径。

#include <iostream>
#include<string>
#include <cstring>
#include<vector>
#include<sstream>
#include<algorithm>
#include <stdlib.h>
#include <stdio.h>
#include<stack>
#include<ctime>
using namespace std; stack<int> st;
int value[][],best[][],n,m;
//value里面存储每个格子的值
//best 存储走到当前格子的最大值
//m,n为格子大小100*100 void initvalue()
{
for(int i=;i<m;i++)
for(int j=;j<n;j++)
{
srand(unsigned(time(NULL)));
value[i][j]=(rand()%(-+))+;//[a,b]
}
value[][]=; } int searchmaxvalue()
{
best[][]=;
for(int i=;i<m;i++)
{
best[i][]=value[i][]+best[i-][];
}
for(int j=;j<n;j++)
{
best[][j]+=value[][j]+best[][j-];
}
for(int i=;i<m;i++)
for(int j=;j<n;j++)
{
best[i][j]=value[i][j]+max(best[i-][j],best[i][j-]);
}
return best[m-][n-]; } void Pu(int n, int m) {
st.push(n);
st.push(m);
if (n == 0 && m == 0)
return;
else if (n == 0 && m > 0)
Pu(n, m-1);
else if (n > 0 && m == 0)
Pu(n-1, m);
else {
if (best[n-1][m] > best[n][m-1])
Pu(n-1, m);
else
Pu(n, m-1);
}
}
void print()
{
Pu(,);
while(!st.empty())
{
cout<<st.top()<<"__";
st.pop();
cout<<st.top();
st.pop();
cout<<endl; }
} int main()
{ m=;
n=;
initvalue();
int bestvalue=searchmaxvalue(); cout<<bestvalue;
print();
//先初始化价值矩阵之后,计算最大价值矩阵,然后输出路径 }

路径输出的地方有点问题。自己还没解决,解决后更新,动态规划问题,乐道笔试题。

红色的部分为借鉴部分,有一点问题。望指导

c++笔试题贪吃蛇问题的更多相关文章

  1. 算法题16 贪吃的小Q 牛客网 腾讯笔试题

    算法题16 贪吃的小Q 牛客网 腾讯笔试题 题目: 链接:https://www.nowcoder.com/questionTerminal/d732267e73ce4918b61d9e3d0ddd9 ...

  2. 2015.4.23 贪吃蛇、canvas动画,各种上传工具,url信息匹配以及最全前端面试题等

    1.面向对象贪吃蛇   2.css中:hover 改变图片 页面加载完 第一次鼠标移入会闪一下 这是为啥? 解决方法:你把两张图合成一张图或者是先把图片加载到页面上,然后再hover出来. 解析:图片 ...

  3. 对Thoughtworks的有趣笔试题实践

    记得2014年在网上看到Thoughtworks的一道笔试题,当时觉得挺有意思,但是没动手去写.这几天又在网上看到了,于是我抽了一点时间写了下,我把程序运行的结果跟网上的答案对了一下,应该是对的,但是 ...

  4. 从阿里巴巴笔试题看Java加载顺序

    一.阿里巴巴笔试题: public class T implements Cloneable { public static int k = 0; public static T t1 = new T ...

  5. Android快乐贪吃蛇游戏实战项目开发教程-01项目概述与目录

    一.项目简介 贪吃蛇是一个很经典的游戏,也很适合用来学习.本教程将和大家一起做一个Android版的贪吃蛇游戏. 我已经将做好的案例上传到了应用宝,无病毒.无广告,大家可以放心下载下来把玩一下.应用宝 ...

  6. 我设计的ASP.NET笔试题,你会多少呢

    本笔试题考查范围包括面向对象基础.HTML.CSS.JS.EF.jQuery.SQL.编码思想.算法等范围. 第1题:接口和抽象类有何区别? 第2题:静态方法和实例方法有何区别? 第3题:什么是多态? ...

  7. C#经典笔试题-获取字符串中相同的字符以及其个数

    public Dictionary<char,int> GetStrSameAs(string str){ //将字符串转换成一个字符数组. char[] charArray=str.To ...

  8. flhs笔试题-回家上机实践

    这是最近参加的一个公司的笔试题,回家上机写了下代码,希望对有需要的小伙伴有用,简单实现字符串和数组在指定位置的插入: package org.flhs; import com.google.commo ...

  9. 用C++实现的贪吃蛇游戏

    我是一个C++初学者,控制台实现了一个贪吃蛇游戏. 代码如下: //"贪吃蛇游戏"V1.0 //李国良于2016年12月29日编写完成 #include <iostream& ...

随机推荐

  1. Windows下MongoDB安装配置

    一.安装 官网下载,一般选择community server版本下载,如果是企业可以选择enterprise版本,个人使用的话community就可以了,附上链接:https://www.mongod ...

  2. echarts图表--统计图表

    echarts官网图表API:http://echarts.baidu.com/index.html

  3. a stop job is running for Security Auditing Services

    内核是3.10.0-514.el7,启动时有如下报错: a stop job is running for Security Auditing Services(56s / 1min 30s) 系统启 ...

  4. hiberate 配置相关

    <hibernate-configuration> <session-factory name="mySessionFactory"> <proper ...

  5. shell字符串基本操作

    shell脚本中一切变量皆字符串,所以必须掌握字符串的常用处理方法.比如获取字符串长度.获取字符串指定位置字符.替换字符串中的指定字符或者删除某些字符等操作. 1.字符串操作列表 (1)var=val ...

  6. ADO.NET基础知识

    ADO.NET定义 ADO是ActiveX Data Objects的缩写,ADO.NET是数据库应用程序和数据源之间沟通的桥梁,主要提供一个面向对象的数据访问架构,用来开发数据库应用程序,就是一组类 ...

  7. hexo发表博文的方式

    本图片转自:简书:https://www.jianshu.com/p/a52b68794a6b 转自github:https://blog.minhow.com

  8. hdu2588-GCD-(欧拉函数+分解因子)

    The greatest common divisor GCD(a,b) of two positive integers a and b,sometimes written (a,b),is the ...

  9. css 书目录相关css+html代码

    css: <style type="text/css"> #list{width:500px;position:absolute;left:50%;margin-lef ...

  10. php json中文被转义

    php 5.4 json_encode($str, JSON_UNESCAPED_UNICODE); 5.4版本以下 方法一function encode_json($str){ $code = js ...