商人过河 决策
来源:互联网 发布:淘宝返利网站 编辑:程序博客网 时间:2024/05/21 08:56
这是上数模老师讲的一道题,解法有图解法和递归穷举的方式,这里我采用后者。
详细说明可以参考:http://www.docin.com/p-970116457.html
代码:
#include<cstdio>#include<cstring>#include<iostream>#include<cmath>using namespace std;const int maxn=100;int n;int vis[maxn][maxn][2];struct Si{ int x; int y; int step;}s[maxn];struct Di{ int x; int y;}d[maxn];void solve(Si k,int i){ //if(k.x==0&&k.y==0) return step; for(int j=0;j<5;j++) {int step=k.step; s[i+1].x=pow((-1),step)*d[j].x+k.x; s[i+1].y=pow((-1),step)*d[j].y+k.y; //cout<<"x1:"<<i+1<<" "<<s[i+1].x<<endl; //cout<<"y1:"<<i+1<<" "<<s[i+1].y<<endl; if((s[i+1].x>=s[i+1].y&&n-s[i+1].x>=n-s[i+1].y)||s[i+1].x==0||n-s[i+1].x==0) { //cout<<"a"<<endl; if(!vis[s[i+1].x][s[i+1].y][step%2]&&s[i+1].x>=0&&s[i+1].y>=0&&s[i+1].x<=n&&s[i+1].y<=n) { vis[s[i+1].x][s[i+1].y][step%2]=1; s[i+1].step=step+1; printf("(%d,%d)\n",s[i+1].x,s[i+1].y); //cout<<""<<s[i+1].x<<endl; //cout<<"y:"<<s[i+1].y<<endl; if(s[i+1].x==0&&s[i+1].y==0){printf("step:%d\n",k.step);return;} //cout<<"x:"<<s[i+1].x<<endl; //cout<<"y:"<<s[i+1].y<<endl; solve(s[i+1],i+1); break; } } }}int main(){ memset(vis,0,sizeof(vis)); scanf("%d",&n); s[1].x=n; s[1].y=n; d[0].x=1; d[0].y=1; d[1].x=1; d[1].y=0; d[2].x=0; d[2].y=2; d[3].x=0; d[3].y=1; d[4].x=2; d[4].y=0; vis[s[1].x][s[1].y][1]=1; vis[s[1].x][s[1].y][0]=1; s[1].step=1; solve(s[1],1);}
阅读全文
0 0
- 商人过河 决策
- 商人过河问题
- 商人过河问题
- 商人过河问题
- 商人过河数学模型求源程序
- 商人过河 Matlab程序实现
- 商人过河问题(DFS)
- 【数学模型】商人们怎样过河?
- [数学模型]商人怎样安全过河
- (回溯算法)商人怎样安全过河
- 商人过河问题C语言源码.c
- 商人过河问题的Java实现1
- 商人过河问题的Java实现2
- (回溯算法)商人怎样安全过河
- 三商人三仆人过河问题
- 修正我上次关于《商人过河的问题》
- 商人过河的另一个版本(商人数, 船载人数可变)
- 过河问题(牛虎过河、商人仆人过河、农夫妖怪过河、传教士野人过河)(第2届第2题)
- Merge Two Sorted Lists
- Android运行时权限(危险权限)
- 使用rsa公钥对字符串加密并通过私钥解密全过程
- svn clean up 报.svn下 pristine 无法移动
- ROS indigo 下 gazebo6 安装与测试
- 商人过河 决策
- easyui 异常:Uncaught TypeError: Cannot read property 'tabs' of undefined
- kafka->spark->streaming->mysql(scala)实时数据处理案列
- cocoapods相关的linux命令
- 云服务器Centos6.8安装配置samba文件共享
- java-无法新建servers的问题
- 如何写SysV服务管理脚本
- 设计模式 单例模式
- 【翻译】VTK 8.0.0