蓝桥杯OJ213买不到的数目【蓝桥杯省赛真题】【动态规划】

题目:

https://www.lanqiao.cn/problems/213/learning/?page=1&first_category_id=1&name=%E4%B9%B0%E4%B8%8D%E5%88%B0%E7%9A%84&sort=problem_id&asc=1&tag_relation=intersectionhttps://www.lanqiao.cn/problems/213/learning/?page=1&first_category_id=1&name=%E4%B9%B0%E4%B8%8D%E5%88%B0%E7%9A%84&sort=problem_id&asc=1&tag_relation=intersection

方法一:可执行代码:【直接找规律硬凑(尝试几遍凑规律:a*b-(a+b)】

cpp 复制代码
 #include <bits/stdc++.h>
 using namespace std;
 int main()
 {
   long long n=0,m=0;cin>>n>>m;
   if(n==1 || m==1) cout<<1;
   else if(n%m!=0 && m%n!=0) cout<<(n*m-(n+m));
   else if(n%m==0) cout<<(n-1);
   else if(m%n==0) cout<<(m-1);
   // 请在此输入您的代码
   return 0;
 }

方法二:可执行代码:【使用动态规划找状态转移方程: if(dp[i-n] || dp[i-m]){ dp[i]=true;}】

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
bool dp[N];
int main(){
long long n=0,m=0,ans=0;cin>>n>>m;
dp[0]=true;
dp[n]=true;
dp[m]=true;
for(int i=0;i<=n*m;i++){
  if(dp[i-n] || dp[i-m]){
     dp[i]=true;
  }
}
int max=0;
for(int i=0;i<=n*m;i++){
	if(dp[i]==false && i>max) max=i;
} 
cout<<max; 
  return 0;
}
相关推荐
承渊政道1 小时前
【递归、搜索与回溯算法】(掌握记忆化搜索的核心套路)
数据结构·c++·算法·leetcode·macos·动态规划·宽度优先
XWalnut14 小时前
LeetCode刷题 day16
数据结构·算法·leetcode·链表·动态规划
We་ct18 小时前
LeetCode 322. 零钱兑换:动态规划入门实战
前端·算法·leetcode·typescript·动态规划
我是无敌小恐龙1 天前
Java SE 零基础入门Day03 数组核心详解(定义+内存+遍历+算法+实战案例)
java·开发语言·数据结构·人工智能·算法·aigc·动态规划
kronos.荒1 天前
动态规划——整数拆分(python)
python·算法·动态规划
不要秃头的小孩2 天前
力扣刷题——509. 斐波那契数
python·算法·leetcode·动态规划
We་ct2 天前
LeetCode 120. 三角形最小路径和:动态规划详解
前端·javascript·算法·leetcode·typescript·动态规划
workflower2 天前
机器人应用-楼宇室内巡逻
大数据·人工智能·算法·microsoft·机器人·动态规划·享元模式
贾斯汀玛尔斯2 天前
每天学一个算法--动态规划(Dynamic Programming, DP)
算法·动态规划
不知名的老吴2 天前
案例教学:最长递增子序列问题
数据结构·算法·动态规划