AcWing 1205. 买不到的数目

如果不知道公式的话,可以用打表的方法来找一下规律。
打表代码:
#include<iostream>
using namespace std;
bool dfs(int i,int n,int m)
{
    if(i==0)return true;
    if(i>=n&&dfs(i-n,n,m))return true;
    if(i>=m&&dfs(i-m,n,m))return true;
    return false ;
}
int main()
{
    int n,m,i,res;
    cin>>n>>m;
    for( i=1;i<=1000;i++)
    {
        if(!dfs(i,n,m))res=i;
    }
    cout<<res<<endl;
}
当然,仅仅靠暴搜是不能ac的,因为i的上限不好确定,容易超时。
因为如果 a,b 均是正整数且互质,那么由 ax+by,x≥0,y≥0 不能凑出的最大数是 (a−1)(b−1)−1。
所以只要输出a*b-a-b即可。
全部评论

相关推荐

11-27 12:43
已编辑
门头沟学院 C++
点赞 评论 收藏
分享
一颗宏心:华为HR晚上过了十二点后还给我法消息。
点赞 评论 收藏
分享
找不到工作死了算了:没事的,雨英,hr肯主动告知结果已经超越大部分hr了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:46
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务