种花小游戏 随机化搜索
植物大战僵尸这款游戏中,还有个特别有意思的赚钱方式——种花(能长金币的花)。
种出来的金币需要玩家点击才能得到,或者,玩家可以购买一只蜗牛来帮助捡金币。然而,蜗牛爬得慢是众所周知的。所以,场上有若干金币时,蜗牛总是喜欢以最少的行程来捡走所有的金币。
现在告诉你场上n个金币所在位置的坐标,以及蜗牛所在位置,让你求出蜗牛捡走所有金币的最小行程。
比较神奇,数据量是16,dfs可以过;随机化搜索,很稳定(所有的点都相同的时间);
1 #include<iostream> 2 #include<cstdio> 3 #include<ctime> 4 #include<cstdlib> 5 #include<cmath> 6 using namespace std; 7 #define up(i,p,n) for(int i=p;i<=n;i++) 8 #define down(i,n,p) for(int i=n;i>=p;i--) 9 namespace OI{ 10 const int maxn=20,inf=100000000; 11 int n,a[maxn][2],q[maxn]; 12 double d[maxn][maxn]; 13 void swa(int i,int j){ 14 for(;i<=j;i++,j--){ 15 swap(q[i],q[j]); 16 } 17 } 18 double slove(){ 19 up(i,1,100){ 20 int x=rand()%n+1; 21 int y=rand()%n+1; 22 if(x==n)x=n-1;if(y==n)y=n-1; 23 swap(q[x],q[y]); 24 } 25 up(i,1,n)up(j,i+1,n-1) 26 if(d[q[i]][q[i+1]]+d[q[j-1]][q[j]]>d[q[i]][q[j-1]]+d[q[i+1]][q[j]])swa(i+1,j-1); 27 double t=0; 28 up(i,1,n-1)t+=d[q[i]][q[i+1]]; 29 return t; 30 } 31 int squ(int x){return x*x;} 32 void init(){ 33 srand(time(0)); 34 scanf("%d",&n);n++; 35 up(i,1,n)scanf("%d%d",&a[i][0],&a[i][1]); 36 up(i,1,n)up(j,1,n) 37 d[i][j]=sqrt(1.0*squ(a[i][0]-a[j][0])+squ(a[j][1]-a[i][1])); 38 //up(i,1,n)up(j,1,n)printf("%d %d %.2lf\n",i,j,d[i][j]); 39 up(i,1,n)q[i]=i; 40 double ans=(double)inf; 41 up(i,1,50000){ 42 double t=slove(); 43 if(t<ans)ans=t; 44 } 45 printf("%.2lf\n",ans); 46 } 47 } 48 int main(){ 49 //freopen("1.in","r",stdin); 50 //freopen("1.out","w",stdout); 51 OI::init(); 52 return 0; 53 }
View Code
转载于:https://www.cnblogs.com/chadinblog/p/5894217.html
种花小游戏 随机化搜索相关推荐
- 0229小游戏 魔兽世界搜索等如何删除
恶意桌面图标 用新版金山网盾[ http://cu003.www.duba.net/duba/tools/dubatools/setup.exe直接点击或复制到工具里下载]安装后运行-直接点一键修 ...
- 开发者该如何抓住微信小游戏的风口?听Cocos创始人王哲详解(上篇)
在微信小游戏真正爆发之前,你该做好这些基础知识储备. 微信小游戏在2017年12月28日正式上线.相对于传统的H5游戏,小游戏的优势十分明显,拥有微信庞大的用户量以及更好的兼容性,在天生适合微信社交生 ...
- SEO案例:4399小游戏网站SEO案例剖析
在小游戏行业,有一个网站的SEO做的相称厉害,那就是4399小游戏,当然17173小游戏要做的不错的,但是绝对于4399来说,其SEO可能要略逊一筹.下面做一个简单地对比你就明白了. 两个网站的百度收 ...
- 微直播笔记|三十分钟微信小游戏开发入门
微信小游戏在2017年12月28日正式上线.相对于传统的H5游戏,小游戏的优势十分明显,拥有微信庞大的用户量以及更好的兼容性,在天生适合微信社交生态的同时还不用担心被屏蔽.无疑,这或许是一个巨大的风口 ...
- 微信小游戏开发实战教程系列开启
**这是小蚂蚁游戏开发公众号原创的第35篇. 在写完了"人人都能做游戏"的新手系列教程后,我收到了不少反馈.有人告诉我,因为看了我的系列教程做出了自己人生的第一个小游戏.也有人告诉 ...
- 【广度优先搜索】一个实例+两张动图彻底理解 BFS | 思路+代码详解 | 用 DFS 自动控制我们的小游戏
前言: 在 第一篇文章 中,我们讨论了 如何用 pygame 写一个小游戏,并用键盘交互控制 .接下来,我们将分别用 DFS .BFS .DRL 实现自动控制.DFS 已经在 这篇文章 中讨论过,现在 ...
- 【深度优先搜索】一个实例+两张动图彻底理解 DFS | DFS 与 BFS 的区别 | 用 DFS 自动控制我们的小游戏
前言: 在第一篇文章中(link),我们讨论了 如何用 pygame 写一个小游戏,并用键盘交互控制 .接下来,我们将分别用 DFS .BFS .DRL 实现自动控制.这篇文章讨论了什么是深度优先搜索 ...
- 「C++小游戏教程」基本技巧(1)——随机化
0. 引言 小游戏中时常要用到随机数,今天就来谈谈这个所谓的"随机". 1. 随机数 rand() 我们要使用随机数(严格意义上是伪随机)的话,C++ 中就有 rand() 来提供 ...
- 小游戏系列算法之五广度优先搜索,双向广搜,八数码,华容道
前段时间在玩仙五前,遇上了蚩尤冢拼图这个小游戏. 其实就是八数码问题,一直想着如何才能用最少步数求解,于是就写了个程序. Q1:什么是八数码问题? A1:首先假定一个3*3的棋盘(如上图),分别有1, ...
- 手动搜索迷宫游戏 c语言,C语言实现一个走迷宫小游戏(深度优先算法)
接上一篇万年历博文,还是那位朋友的练习题.这次是使用C语言做一个小游戏程序,三选一(2048.8皇后和迷宫游戏),我选择的是迷宫(文章末尾有程序截图).个人认为这个程序的难点在于迷宫地图的绘制,也就是 ...
最新文章
- 技术图文:如何改进算法的运行效率?
- Java中非法参数的异常_Java中的异常
- html+js获取系统当前日期并输出
- python中的join函数连接dataframe_python pandas DataFrame.join用法及代码示例
- linux ubi 分区,Linux最新UBI文件系统介绍
- CentOS 7——yum错误[Error: rpmdb open failed]解决方案
- 4.day11_包和权限修饰符-1
- Backbone.js源码解读(转载)
- 26 MM配置-采购-采购申请-定义编码范围
- 《深入理解Java虚拟机》——垃圾收集器的具体实现
- 遇到一个Linux系统文件被删除后仍占用磁盘的问题
- 设计模式-Builder Pattern
- DHCP中继原理和配置(含常见配置配置误区)
- linux纯终端下中文输入,Linux中文输入法的问题解决
- 问卷java_Java 问卷调查
- 百度地图API详解之驾车导航
- 企鹅java游戏下载安装_飞翔企鹅游戏下载
- Hadoop分布式集群搭建以及案例运行-fs操作
- 正常计算机的c盘空间多大,往往C盘剩余空间多少为宜
- 智能座舱全舱感知系统SCSS
热门文章
- PyTorch: Conv2d and ConvTranspose2d
- Unable to access jar file xxx.jar问题的解决
- 第十七届时尚COSMO美容大奖盛大启动 亮点多维度升级,2020一起“美就出圈”
- 批处理命令之Start的详细用法
- Android 子线程 UI 操作真的不可以?
- MTK G-sensor
- Android:给图片加边框
- BizTalk Server : 提高 BizTalk 编程能力的 8 点技巧和窍门
- jsp酒店客房预订系统带前端
- 硬件工程师入门-基础元器件笔记-1-电阻器