题解 CF681B 【Economy Game】

题目解析:

这题给你一个n (1<=n<=10^9)让你判断是否有a*1234567+b*123456+c*1234=n的方法(a、b、c皆为正整数)

解题方法:

此题其实很简单,我自己做的时候考虑了很久用什么方法做,但算了一下时间复杂度后,发现之需要暴力枚举一下就行了(我估计也没什么好的方法了,解法可能会有点重复,望通过)

AC代码:

#include <cstdio>
using namespace std;
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=0;i<=n;i+=1234567)    //如果用i当计数器的话,例如i*1234567,这样会超时
    {
        for(int j=0;j<=n-i;j+=123456)   //与i同理
        {
            if((n-i-j)%1234==0)     //只需要判断剩下的数除以1234能否整除就行了
            {
                printf("YES\n");    //输出
                return 0;      //不return可能会TLE
            }
        }
    }
    printf("NO\n"); //上面如果找到了方法就直接return了,所以这里不需要判断什么
    return 0;
}

THE END.


 上一篇
题解 CF581B 【Luxurious Houses】 题解 CF581B 【Luxurious Houses】
题目解析:给你n栋房子,问你第i栋房子要再搭几层才能比它后面所有的房子高 (注意:是要严格大于,不能等于) 所以我们只要找到第i栋房子后面最高的一栋,然后比较 样例说明:5 1 2 3 1 2 第1栋房子高度为1,身后最高的房子高度为
2020-04-10
下一篇 
题解 CF748A 【Santa Claus and a Place in a Class】 题解 CF748A 【Santa Claus and a Place in a Class】
题目解析:这题其实就是一个二维矩阵,给你一个编号,让你输出这个编号所在的位置 使用算法:这题的范围:n,m,k.( 1<=n,m<=10000 , 1<=k<=2 * n* m ) 所以这道题不能用二维数组直接来
2020-04-10
  目录