zoukankan      html  css  js  c++  java
  • CodeForces681B

    题意

    给出一个 (n) ,问是否存在三个数 (a)(b)(c) 三个数,满足该等式:(a * 1 234567 + b * 123456 + c * 1234 = n)

    如果存在,则输出 YES ,否则输出 NO。

    思路

    for循环直接暴力解决就行,不要三层会超时。

    注意

    注意几个超时的点。

    • 不能用return 0。

    • 看清楚哪里需要开long long。

    • 记得随时break。

    AC代码

    #include<iostream>
    #include<algorithm>
    #include<string>
    #include<queue>
    #include<cmath>
    #include<map>
    #include<stdio.h>
    using namespace std;
    typedef long long ll;
    #define inf 0x3f3f3f3f
    
    int main()
    {
        ll n;
        cin>>n;
        bool flag=0;
        for(ll i=0;i<=n;i++)
        {
            if(i*1234567>n)      //   不加这两行,第二组数据TLE
                break;
            for(ll j=0;j<=n;j++)
            {
                ll k=n-i*1234567-j*123456;
                if(k>=0&&k%1234==0)
                {
                    flag=1;
                    break;
                }
            }
            if(flag)
                break;
        }
        if(flag) cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
        return 0;
    }
    

    超时代码

    我并不知道为什么会超时,明明和上面AC的代码基本一样。

    C++交,第5组TLE;G++交,第7组TLE。

    我还是没找到原因。

    超时代码:

    #include<iostream>
    #include<algorithm>
    #include<string>
    #include<queue>
    #include<cmath>
    #include<map>
    #include<stdio.h>
    
    using namespace std;
    typedef long long ll;
    #define inf 0x3f3f3f3f
    
    int main()
    {
        ll n;
        cin>>n;
        bool flag=0;
        for(ll i=0;i<=n;i++)
        {
            if(i*1234567>n)
                break;
            for(ll j=0;j<=n;j++)
            {
                ll k=n-i*1234567-j*123456;
                if(k>=0&&k%1234==0)
                {
                    cout<<"YES"<<endl;
                    //flag=1;
                   // break;
                   return 0;
                }
            }
    //        if(flag)
    //            break;
        }
       // if(flag) cout<<"YES"<<endl;
        //else
            cout<<"NO"<<endl;
        return 0;
    }
    
  • 相关阅读:
    linux
    day01-02
    测试基础
    cookie session
    多表表与表关系 增删改查 admin
    连接数据库 创建表 字段和参数 增删改查
    LeetCode OJ:Triangle(三角形)
    LeetCode OJ:Unique Paths II(唯一路径II)
    LeetCode OJ:Unique Paths(唯一路径)
    使用双栈实现一个队列
  • 原文地址:https://www.cnblogs.com/OFSHK/p/13955894.html
Copyright © 2011-2022 走看看