HD251HJ_HB5082

HD251HJ_HB5082原题链接描述Givenasequence1,2,3,……N,yourjobistocalculateallthepossiblesub-sequencesthatthesumofthesub-sequenceisM.输入Inputcontainsmultipletestcases.eachcasecontainstwoint…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

原题链接

描述

Given a sequence 1,2,3,……N, your job is to calculate all the possible sub-sequences that the sum of the sub-sequence is M.

输入

Input contains multiple test cases. each case contains two integers N, M( 1 <= N, M <= 1000000000).input ends with N = M = 0.

输出

For each test case, print all the possible sub-sequence that its sum is M.The format is show in the sample below.print a blank line after each test case.

样例输入

20 10
50 30
0 0

样例输出

[1,4]
[10,10]

[4,8]
[6,9]
[9,11]
[30,30]

思路

等差数列求和的变形。
\(S=\frac{(k+k+n-1)*n}{2}\)
\(2k=\frac{2s}{n}-n+1, n≤\sqrt{S}\)
枚举n然后算出k就好

代码

#include <bits/stdc++.h>
#define ll long long
using namespace std;

int main()
{
    ll n, m;
    while(~scanf("%lld %lld", &n, &m))
    {
        if(n + m == 0) break;
        ll k, t;
        for(t = sqrt(2 * m); t > 0; t--)
        {
            if(2 * m % t) continue;
            ll r = 2 * m / t - t + 1;
            if(r % 2) continue;
            k = r >> 1;
            printf("[%lld,%lld]\n", k, k + t - 1);
        }
        printf("\n");
    }
    return 0;
}

转载于:https://www.cnblogs.com/HackHarry/p/8371005.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186755.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月2日 下午2:16
下一篇 2022年10月2日 下午2:16


相关推荐

  • 什么是TCC?_tc部门是什么意思

    什么是TCC?_tc部门是什么意思假设现在有一个电商系统,里面有一个支付订单的场景,那对一个订单支付之后,我们需要做下面的步骤 更改订单的状态为“已支付” 扣减商品库存 给会员增加积分 创建销售出库单通知仓库发货 业务场景有了,现在要更进一步,实现一个TCC分布式事务的效果,也就是说,订单服务-修改订单状态,库存服务-扣减库存,积分服务-增加积分,仓储服务-创建销售出库单,上述这几个步骤,要么一起成功,要么一起失败,必须是一个整体性的事务举个例子,现在订单的状态都修

    2022年4月20日
    236
  • mysql学习—查询数据库中特定的值对应的表

    遇到一个问题,我将问题抽象简单描述如下: 循环查询数据库所有表,查出字段中包含tes值的表,并且将test修改为hello? 因为自己不才找了很久也没有找到很好的方法,又对mysql的游标等用法不是很了解,在时间有限的情况下,发现了下面的方法,分享给大家:

    2022年2月25日
    46
  • 面试抽集二

    面试抽集二面试抽集二

    2022年4月23日
    47
  • mysql用户权限分配及主从同步复制

    mysql用户权限分配及主从同步复制

    2021年12月16日
    49
  • 什么是国际邮箱地址,如何登录域名邮箱?「建议收藏」

    什么是国际邮箱地址,如何登录域名邮箱?「建议收藏」互联网的高速发展,信息通讯的重要,邮箱已然变成不可或缺的通讯工具,TOM企业邮箱作为国内重要的邮箱厂商,一直为广大用户提供系统的邮箱服务。国际邮箱地址与国内都是同等格式,账号名称@域名组成通用的国际邮箱地址,下面给大家讲解如何注册域名邮箱并登录使用。如何注册域名邮箱?首先讲下域名邮箱的特点,域名邮箱是指用公司或者个人注册的域名,用来开通邮箱时使用的域名,其具有个性化、标志化的特点,在商务往来中更加突显正规性。注册完成将域名解析到邮箱服务商,开通的邮箱就能使用了。登录使用域名邮箱邮箱开通后,使用邮箱

    2026年2月26日
    5
  • UVA 11490 – Just Another Problem(数论)

    UVA 11490 – Just Another Problem(数论)

    2022年1月19日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号