当前位置: 首页 > news >正文

淄川响应式网站建设郑州网站免费制作

淄川响应式网站建设,郑州网站免费制作,装修大全,科技头像小蓝有一个整数,初始值为1,他可以花费一些代价对这个整数进行变换。 小蓝可以花贵1的代价将教数增加1。 小蓝可以花费3的代价将整数增加一个值,这个值是整数的数位中最大的那个(1到9) .小蓝可以花费10的代价将整数变为原来的2倍, 例如,如果整…

小蓝有一个整数,初始值为1,他可以花费一些代价对这个整数进行变换。
小蓝可以花贵1的代价将教数增加1。
小蓝可以花费3的代价将整数增加一个值,这个值是整数的数位中最大的那个(1到9) .小蓝可以花费10的代价将整数变为原来的2倍,
例如,如果整数为16花费3将整数变为22,

又如,如果整数为22花费1将整数变为33,

又如,如果整数为23,花费10将整数为 46。
请问,如果要将整数从初始值1变为 2024,请问限少需要多代价?
 

思路:注意!!!!只能从1开始推到2024,因为其中有一个状态方程是要求取出当前数字最大数字(1~9),所以倒着写是不可行的。另外还要写一个函数取出当前数字里面的最大数字(1~9)。。记忆化搜索,正常写出所有推出状态的方程,并且每次要重置一个非常大的值比大小,每个状态方程的边界要写清楚。当x == 2024的时候返回0,完成基准情况即可。

#include<iostream>
#include<algorithm> 
using namespace std;
int mem[200000];
int Mnum(int k)
{int t,M = -1e6;while(k){t = k % 10;M = max(M,t);k = k/10;}return M;
}
int dfs(int x)//当前为x数字 
{if(x == 2024)return 0;int sum = 1e6;if(mem[x])return mem[x];if(x * 2 <= 2024)sum = min(sum,dfs(x*2)+10);if(x + Mnum(x) <= 2024)sum = min(sum,dfs(x+Mnum(x))+3);if(x + 1 <= 2024)sum = min(sum,dfs(x+1)+1);mem[x] = sum;return sum;
}
int main(void)
{cout << dfs(1);return 0;
}

http://www.yayakq.cn/news/204363/

相关文章:

  • 同学录网站开发实现基本要求app开发定制公司名单
  • 网站做平台四川网站推广公司
  • 网站 个人 公司 区别标准网站建设合同
  • 怎么做网站开发一站式服务平台登录
  • 网站建设者html云服务器可以做网站吗
  • 公司概况-环保公司网站模板商务网站建设与维护 ppt
  • 做暖暖视频网站有哪些网站建设应该注意哪些问题
  • 深圳建设局网站注册结构师培训附件苏州网站排名方案
  • 常用网站推荐温州知名网站推广
  • 深圳网站建设 排行榜深圳网站建设外包公司
  • 查企业网站有哪些莱芜定制网站建设公司
  • 织梦网站首页网页设计专业考研科目
  • 网站开发方式哪四种wordpress 文章列表分页
  • 企业门户网站网站怎么获得wordpress保存图片时加水印
  • 了解公司的网站WordPress 云锁
  • 自己做家具的网站做壁纸的网站
  • 大良营销网站建设公司修改wordpress注册页
  • 雅安建设机械网站高大上网站
  • 阿里云1核2g服务器能建设几个网站做的好的网站营销微信公众号
  • 东山县建设银行网站南京自助建站网站
  • 镇江海绵城市建设官方网站快速做网站服务好
  • 东莞免费做网站公司西宁市解封最新消息
  • 电子商务网站的后台管理系统沈阳个人网站建设代理品牌
  • hui怎么做网站wordpress elision
  • 设计国外网站农业网站建设
  • 鞋厂网站模板html编辑器程序
  • 无锡网站制作公司排名内部优惠券网站建站
  • 怎么给网站刷流量网站开发框架书籍
  • 怎么查看网站点击量网站建设典型发言
  • 做网站常州宁波网站推广排名