zoukankan      html  css  js  c++  java
  • 爆搜。。。。。。。

    题目:

    给你一个整数N和长度L, 现在要求你找X个连续的非负整数,使得它们的和是N,  同时要满足 X  >= L, 你的任务是使得X最小,输出这连续的X个整数。如果找不到这样的连续整数或者能找到但X > 100, 那么你输出-1。 也就是能找到满足题意的连续整数,且X < =100时,才输出这连续的X个非负整数。


    超时:

    #include<iostream>
    #include<algorithm>
    using namespace std;
    const int maxn=2333;
    long long n,l,x,c,shu=0;
    int main()
    {
        cin>>n>>l;
        for(int i=1;;i++)
        {
            if(((i*2+l)*(l+1))/2>n)
                break;
            for(int j=l;j<=100;j++)
            {   
                if(((i*2+100)*(101))/2<n)
                    break;
                if(((i*2+j)*(j+1))/2==n)
                {
                    shu++;
                    x=i;
                    c=j+1;
                    break;
                }
                if(((i*2+j)*(j+1))/2>n)
                {
                    break;
                }
            }
        }

        if((shu==0))
            cout<<"-1"<<endl;
        else
        {
            for(int i=x;i<=c+x-1;i++)
                cout<<i<<endl;
        }
        return 0;
    }



    ACCEPTED:

    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n,l,t=0,sum;
    void work()
    {
        for (int i=l;i<=100;i++)
        {
            sum=n;
            sum*=2;
            if ((sum%i==0)&&((sum/i-i+1)%2==0))
            {
                sum=(sum/i-i+1)/2;
                t=i;
                break;
            }
        }

    }
    int main()
    {
        cin>>n>>l;
        work();
        if (t==0) cout<<"-1"<<endl;
        else for (int i=sum;i<=sum+t-1;i++)
                cout<<i<<endl;
        return 0;
    }



  • 相关阅读:
    CLR c++/CLI 如何返回多个返回值
    在php 中显示array数据
    MVC已死,该是用MOVE的时候了
    拿到网规证书后,办北京户口的遭遇。
    利亚德股票限售股解禁表
    32位MSSQL数据库备份如何在64位MSSQL数据库上恢复
    利用DNS实现负载均衡
    购买服务器具体和什么参数有关
    简单来总结一下C++与C#之间的区别
    c# 操作DOS ping命令判断与指定主机是否可以通信
  • 原文地址:https://www.cnblogs.com/zyker/p/5879209.html
Copyright © 2011-2022 走看看