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

牛客网 -- WY28 跳石板

题目链接: 跳石板_牛客题霸_牛客网 (nowcoder.com)

解题步骤:

参考代码:

void get_approximate(vector<int>& v,int n)
{//求约数,从2到sqrt(n)即可,原因看图解//这里一定要等于sqrt(n),例如16,4也是约数for(int i=2;i<=sqrt(n);i++){if(n%i==0){v.push_back(i);//i是n的约数,那么n/i也是n的约数//但是如果i==n/i,即重复的就取一个就好//不等的时候两个都要取if(n/i!=i){v.push_back(n/i);}}}
}int main()
{int n=0;int m=0;cin>>n>>m;//多开一行,多开一列,并初始化为最大值vector<int> dp(m+1,INT_MAX);//初始化dp[n]的值dp[n]=0;for(int i=n;i<=m;i++){if(dp[i]==INT_MAX)//说明i位置不可到达,直接continue{continue;}vector<int> approximate;//获取i的所有约数get_approximate(approximate,i);//填写dp表中所有dp[i+i的约数]的值for(int j=0;j<approximate.size();j++){//i+approximate[j]<=m才有必要更新//状态转移方程if(i+approximate[j]<=m&&dp[i+approximate[j]]==INT_MAX){dp[i+approximate[j]]=dp[i]+1;}else if(i+approximate[j]<=m&&dp[i+approximate[j]]!=INT_MAX){dp[i+approximate[j]]=min(dp[i+approximate[j]],dp[i]+1);}}}//判断dp[m]是否符合题意cout<<(dp[m]==INT_MAX?-1:dp[m])<<endl;return 0;
}

你学会了吗???

http://www.lryc.cn/news/197359.html

相关文章:

  • [正式学习java③]——字符串在内存中的存储方式、为什么字符串不可变、字符串的拼接原理,键盘录入的小细节。
  • 行情分析——加密货币市场大盘走势(10.18)
  • 高并发场景下常见的限流算法及方案介绍
  • 虹科分享 | 选择SAS还是NVMe?虹科网络基础带您一探究竟!
  • 在ERP管理系统中,库存管理的基本流程是什么?
  • Ruby 之 csv 文件读写
  • Android AMS——进程LRU列表更新(十七)
  • 【数据可视化】—大屏数据可视化展示
  • 计算机算法分析与设计(12)---贪心算法(最优装载问题和哈夫曼编码问题)
  • 打造属于自己的vue图标库
  • C++11线程池
  • 企业打造VR虚拟展厅,开启商务洽谈新时代!
  • linux部署gitlab
  • c++_learning-基础部分
  • 支持PC端、手机端、数据大屏端的Spring Cloud智慧工地云平台源码
  • 给cmd控制台程序 套壳 美化
  • 【系统架构设计】架构核心知识: 1 构件和中间件
  • 通过开发者工具-网络排查响应时间过长的问题
  • 【Python】Python 实现 Excel 到 CSV 的转换程序
  • BUUCTF题解之[极客大挑战 2019]Havefun 1
  • DIV+CSS网页布局
  • python二次开发CATIA:CATIA Automation
  • 2023年中国云计算软件市场规模、市场结构及市场份额情况分析[图]
  • docker入门加实战—部署Java和前端项目
  • 机器人制作开源方案 | 行星探测车概述
  • Git基础命令
  • C#中Semaphore 和 CountdownEvent 的使用总结
  • THE PLANETS:EARTH vulnhub
  • 【随想】每日两题Day.13
  • CMake Cookbook