植物大战僵尸这款游戏中,还有个特别有意思的赚钱方式——种花(能长金币的花)。
种出来的金币需要玩家点击才能得到,或者,玩家可以购买一只蜗牛来帮助捡金币。然而,蜗牛爬得慢是众所周知的。所以,场上有若干金币时,蜗牛总是喜欢以最少的行程来捡走所有的金币。
现在告诉你场上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

种花小游戏 随机化搜索相关推荐

  1. 0229小游戏 魔兽世界搜索等如何删除

    恶意桌面图标   用新版金山网盾[ http://cu003.www.duba.net/duba/tools/dubatools/setup.exe直接点击或复制到工具里下载]安装后运行-直接点一键修 ...

  2. 开发者该如何抓住微信小游戏的风口?听Cocos创始人王哲详解(上篇)

    在微信小游戏真正爆发之前,你该做好这些基础知识储备. 微信小游戏在2017年12月28日正式上线.相对于传统的H5游戏,小游戏的优势十分明显,拥有微信庞大的用户量以及更好的兼容性,在天生适合微信社交生 ...

  3. SEO案例:4399小游戏网站SEO案例剖析

    在小游戏行业,有一个网站的SEO做的相称厉害,那就是4399小游戏,当然17173小游戏要做的不错的,但是绝对于4399来说,其SEO可能要略逊一筹.下面做一个简单地对比你就明白了. 两个网站的百度收 ...

  4. 微直播笔记|三十分钟微信小游戏开发入门

    微信小游戏在2017年12月28日正式上线.相对于传统的H5游戏,小游戏的优势十分明显,拥有微信庞大的用户量以及更好的兼容性,在天生适合微信社交生态的同时还不用担心被屏蔽.无疑,这或许是一个巨大的风口 ...

  5. 微信小游戏开发实战教程系列开启

    **这是小蚂蚁游戏开发公众号原创的第35篇. 在写完了"人人都能做游戏"的新手系列教程后,我收到了不少反馈.有人告诉我,因为看了我的系列教程做出了自己人生的第一个小游戏.也有人告诉 ...

  6. 【广度优先搜索】一个实例+两张动图彻底理解 BFS | 思路+代码详解 | 用 DFS 自动控制我们的小游戏

    前言: 在 第一篇文章 中,我们讨论了 如何用 pygame 写一个小游戏,并用键盘交互控制 .接下来,我们将分别用 DFS .BFS .DRL 实现自动控制.DFS 已经在 这篇文章 中讨论过,现在 ...

  7. 【深度优先搜索】一个实例+两张动图彻底理解 DFS | DFS 与 BFS 的区别 | 用 DFS 自动控制我们的小游戏

    前言: 在第一篇文章中(link),我们讨论了 如何用 pygame 写一个小游戏,并用键盘交互控制 .接下来,我们将分别用 DFS .BFS .DRL 实现自动控制.这篇文章讨论了什么是深度优先搜索 ...

  8. 「C++小游戏教程」基本技巧(1)——随机化

    0. 引言 小游戏中时常要用到随机数,今天就来谈谈这个所谓的"随机". 1. 随机数 rand() 我们要使用随机数(严格意义上是伪随机)的话,C++ 中就有 rand() 来提供 ...

  9. 小游戏系列算法之五广度优先搜索,双向广搜,八数码,华容道

    前段时间在玩仙五前,遇上了蚩尤冢拼图这个小游戏. 其实就是八数码问题,一直想着如何才能用最少步数求解,于是就写了个程序. Q1:什么是八数码问题? A1:首先假定一个3*3的棋盘(如上图),分别有1, ...

  10. 手动搜索迷宫游戏 c语言,C语言实现一个走迷宫小游戏(深度优先算法)

    接上一篇万年历博文,还是那位朋友的练习题.这次是使用C语言做一个小游戏程序,三选一(2048.8皇后和迷宫游戏),我选择的是迷宫(文章末尾有程序截图).个人认为这个程序的难点在于迷宫地图的绘制,也就是 ...

最新文章

  1. 技术图文:如何改进算法的运行效率?
  2. Java中非法参数的异常_Java中的异常
  3. html+js获取系统当前日期并输出
  4. python中的join函数连接dataframe_python pandas DataFrame.join用法及代码示例
  5. linux ubi 分区,Linux最新UBI文件系统介绍
  6. CentOS 7——yum错误[Error: rpmdb open failed]解决方案
  7. 4.day11_包和权限修饰符-1
  8. Backbone.js源码解读(转载)
  9. 26 MM配置-采购-采购申请-定义编码范围
  10. 《深入理解Java虚拟机》——垃圾收集器的具体实现
  11. 遇到一个Linux系统文件被删除后仍占用磁盘的问题
  12. 设计模式-Builder Pattern
  13. DHCP中继原理和配置(含常见配置配置误区)
  14. linux纯终端下中文输入,Linux中文输入法的问题解决
  15. 问卷java_Java 问卷调查
  16. 百度地图API详解之驾车导航
  17. 企鹅java游戏下载安装_飞翔企鹅游戏下载
  18. Hadoop分布式集群搭建以及案例运行-fs操作
  19. 正常计算机的c盘空间多大,往往C盘剩余空间多少为宜
  20. 智能座舱全舱感知系统SCSS

热门文章

  1. PyTorch: Conv2d and ConvTranspose2d
  2. Unable to access jar file xxx.jar问题的解决
  3. 第十七届时尚COSMO美容大奖盛大启动 亮点多维度升级,2020一起“美就出圈”
  4. 批处理命令之Start的详细用法
  5. Android 子线程 UI 操作真的不可以?
  6. MTK G-sensor
  7. Android:给图片加边框
  8. BizTalk Server : 提高 BizTalk 编程能力的 8 点技巧和窍门
  9. jsp酒店客房预订系统带前端
  10. 硬件工程师入门-基础元器件笔记-1-电阻器