HLUOJ486. 种花小游戏

状压经典的例题

题目描述

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

输入格式

第一行一个正整数n,表示金币数量 之后n行,每行两个非负整数x、y,分别表示金币所在位置坐标 最后一行两个正整数x、y表示蜗牛起始位置。

输出格式

一个实数(保留2位小数),表示最短行程
这题就简单的状压,然而由于一个巨坑卡了两个小时,到最后才发现了一个问题。

if((zh&mi(i-1,1))==0) continue;

一开始这句话zh&mi(i-1,1)两边没加括号,然后它居然先算的是mi(i-1,1)==0,得到布尔值再与zh进行&运算,于是我调了1个小时找各种错误。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int x[20],y[20],xs,ys,n,k;
double s[20][20],f[68000][30];
int mi(int num,int sum)
{
if(num==0) return sum;
sum*=2;num--;
return mi(num,sum);
}
int read()
{
bool flag=true;
int num=0;char c=getchar();
for(;c<'0'||c>'9';c=getchar())if(c=='-') flag=false;
for(;c>='0'&&c<='9';c=getchar())
num=(num<<3)+(num<<1)+c-48;
if(flag) return num;
else return -num;
}
void init()
{
n=read();
for(int i=1;i<=n;++i)
x[i]=read(),y[i]=read();
xs=read(),ys=read();
x[0]=xs;y[0]=ys;
for(int i=1;i<=n;++i)for(int j=1;j<=n;++j) s[i][j]=2000000000.0;
for(int i=0;i<=n;++i)
for(int j=i;j<=n;++j)
s[i][j]=s[j][i]=sqrt( (x[i]-x[j])*(x[i]-x[j]) + (y[i]-y[j])*(y[i]-y[j]) );
k=mi(n,1);k--;
return;
}
void dp(int zh,int pl)
{
for(int i=1;i<=n;++i)
{
if((zh&mi(i-1,1))==0) continue;
if(f[zh-mi(i-1,1)][i]==1689000000.0) {dp(zh-mi(i-1,1),i);f[zh][pl]=min(f[zh][pl],f[zh-mi(i-1,1)][i]+s[i][pl]);}
else f[zh][pl]=min(f[zh][pl],f[zh-mi(i-1,1)][i]+s[i][pl]);
}
}
int main()
{
init();
for(int i=0;i<=k;++i) for(int j=1;j<=n;++j) f[i][j]=1689000000.0;
for(int i=1;i<=n;++i) f[0][i]=s[0][i];
double ans=2000000000.0;
for(int i=1;i<=n;++i) dp(k-mi(i-1,1),i),ans=min(ans,f[k-mi(i-1,1)][i]);
printf("%.2lf",ans);
return 0;
}

以后还是要注意运算顺序啊。

状态压缩.种花小游戏相关推荐

  1. android h5游戏图片不缓存,H5小游戏资源缓存方法与流程

    本发明涉及H5资源缓存领域,尤其涉及H5小游戏资源缓存方法. 背景技术: 随着移动互联网的发展和手机硬件性能的不断提升,H5小游戏这种不需要下载安装即可使用的全新游戏应用得到了爆发式发展.这种用完即走 ...

  2. C++---状态压缩dp---玉米田(每日一道算法2023.4.16)

    注意事项: 本题为"状态压缩dp-蒙德里安的梦想"和"状态压缩dp-小国王"的近似题,建议先阅读这两篇文章并理解. 题目: 农夫约翰的土地由 M×N 个小方格组 ...

  3. Java Swing 经典小游戏《飞机大战》———— (四)碰撞检测 游戏状态与得分 玩家升级

    前期回顾 Java Swing 经典小游戏<飞机大战>---- (一)获取素材,创建窗口,添加滚动背景,双缓冲 Java Swing 经典小游戏<飞机大战>---- (二)玩家 ...

  4. ZOJ-3802:Easy 2048 Again(2048游戏 状态压缩dp)

    题目链接:点击打开链接 题目大意: 给一些连续的点,从第一个点走到最后一个点,可以选择走或者不走,走的两个点相同则合为新的点,并奖励额外的分数.这个操作是可以一直递推的,例如16,8,4,2. 若下一 ...

  5. java小游戏课程设计消消乐_快速编程java:消消乐A1版,状态编程

    一年前做的项目.代码是公开的. 多个版本的俄罗斯方块.消消乐代码 https://blog.csdn.net/weixin_42644456/article/details/90178306 这里有网 ...

  6. cocos creator 安卓原生平台环境_竞技对抗小游戏单挑篮球开发历程 | Cocos技术派第12期...

    本文来自于"Cocos 荣耀讲师"征稿活动第1期,最先发表于 Cocos 中文社区,作者 ID:蟹老板,2017年加入社区,文章作品包括<猎头专家的开发历程>等. Co ...

  7. [NOIP2016]愤怒的小鸟 状态压缩dp

    题目描述 Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可以用它向第一象限发射一只红色的小鸟,小鸟们的飞行轨迹均为形 ...

  8. LeetCode 1178. 猜字谜(状态压缩+枚举二进制子集+哈希)

    文章目录 1. 题目 2. 解题 1. 题目 外国友人仿照中国字谜设计了一个英文版猜字谜小游戏,请你来猜猜看吧. 字谜的迷面 puzzle 按字符串形式给出,如果一个单词 word 符合下面两个条件, ...

  9. 游戏自审自查报告_开发的射箭小游戏上线了,分享一下我在开发过程中遇到的问题...

    利用业余时间开发的微信小游戏-射箭救人质上线了,主要玩法就是操作弓箭射断绳子把人救下来就可以了.图片资源是我找一个朋友做的.开发过程不算太顺利.磕磕绊绊做了12关.希望大家支持下.谢谢. 分享一下我在 ...

  10. [转]状态压缩dp(状压dp)

    状态压缩动态规划(简称状压dp)是另一类非常典型的动态规划,通常使用在NP问题的小规模求解中,虽然是指数级别的复杂度,但速度比搜索快,其思想非常值得借鉴. 为了更好的理解状压dp,首先介绍位运算相关的 ...

最新文章

  1. 工作中用不到的技术要不要学?
  2. java的知识点45——CLOB 存储大量的文本数据与 BLOB 二进制大对象
  3. OncePerRequestFilter-源码解析
  4. 版本名称GA的含义:SNAPSHOT-alpha-beta-release-GA
  5. 查看win激活状态的命令
  6. 决不允许AI杀人武器研发!马斯克领衔2400名科学家签署联名宣言
  7. python大众点评最新字体加密破解完结
  8. jmeterweb登陆测试_JMeter (2) —— JMeter与WebDriver测试用户登陆以CAS SSO为例(101 Tutorial)...
  9. 适配器(Adapter)
  10. iPhone手机使用:手机上面的App Store突然变成英文(iTunes也是英文),然后把英文还原成中文的方法
  11. Anaconda => PyCharm => CUDA => cudnn => PyTorch 环境配置
  12. On the burstiness of visual elements
  13. ORACLE 常用的SQL语法和数据对象
  14. Git runner安装
  15. 关于我想写个脚本,最后却搞了个桌面宠物这件事(一)
  16. exercise11
  17. 2020双十一活动怎么玩?做好这3点引爆销量!
  18. 阿里云CNAME配置详细图文流程 新手必看教程
  19. 基于H.264的RTP打包原理和FU-A分片实例分析
  20. 数据与广告系列二十四:效果广告后定向时代如何逆流而上

热门文章

  1. linux定时对准时间,Linux校对时间
  2. 微服务网关SIA-GateWay使用指南 ===
  3. ICP-MS测试/电感耦合等离子体质谱仪(型号Perkin Elmer Nexion 300)
  4. 心情不好的时候,用 Python 画棵樱花树送给自己吧
  5. An工具介绍之钢笔工具、铅笔工具与画笔工具
  6. 电池SOC仿真系列-基于RNN的电池SOC估算研究
  7. 有道云笔记不同步_有道云笔记同步失败解决方法
  8. Python人脸笑脸识别【人工智能】【CNN】
  9. IP地址分为A,B,C,D,E五类
  10. ‘MSOCache’是什么文件?