CF485A-题解


CF485A 题解

题目分析:

这个题的题面看得有点复杂(可能只有我这个蒟蒻觉得),但其实只要仔细思考一下,很容易就发现,这题的意思就是输入一个数 $n$,然后再枚举多次,如果在枚举的时候发现了 $a%m==0$ 就直接输出 Yes 并且退出,否则 $a$ 一直加 $a%m$ ,如果枚举到最后,还是没有退出程序,就输出 No

题目难度:

个人认为在入门难度左右

做法分析:

在题目分析我们已经说到了是输入两个数 $n,m$,然后再枚举多次(我选的是 $m+100$,但在我看别的题解释,$m+10$ 也可以),如果在枚举的时候发现了 $ a%m==0 $ 就直接输出 Yes 并且退出,否则 $a$ 一直加 $a%m$ 。如果枚举完了还没有退出,就证明不会有停止生产的情况,输出 No 就好了。

完整代码:

#include<cstdio>
#include<iostream>
long long a,m; //注意,a,m 一定要用long long不然会爆
int i;
int main() {
    scanf("%lld%lld",&a,&m); //输入,注意要用%lld
    if(a%m==0) { //如果刚开始时就会停产,直接输出"Yes"
        puts("Yes");
        return 0;
    }
    for(i=1; i<=m+100; i++) { //暴力枚举多次
        a+=a%m;
        if(a%m==0) {  //如果有a%m==0的情况,直接输出"Yes"
            puts("Yes");
            return 0; //记住要跳出
        }
    }
    puts("No"); //枚举完了还没有退出,就输出"No"
}

希望本题解对大家有帮助,也感谢管理员百忙之中为我审核题解,谢谢!

2020/3/14 修改爆掉的LaTeX。


文章作者: Andysun06
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Andysun06 !
 上一篇
CF278A-题解 CF278A-题解
CF278A 题解这题既然没有pascal题解,那我就来一篇 题目描述:有 $n$ 个车站排成一个环形,给定 $n$ 个车站之间的距离,求从第$s$个车站到第 $t$ 个车站所需的最短距离。 题目分析:也就是说,有一个这样的车站: 他可以
2020-05-02
下一篇 
CF701A-题解 CF701A-题解
CF701B 题解题目分析:这道题是给出了一个棋盘,大小为 $n×n$ 并且里面有 $m$ 个棋子,每个棋子可以攻击与他同一行,列的位置,并且 $n$ 和 $m$ 都很大,数据范围为 ( $1 \leq n \leq 100000, 1 \
2020-05-02
  目录