码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 序列和【牛客网】


    题意:

    给一个正整数N和长度L,找出一段长度大于等于L的连续非负整数,他们的和恰好为N。答案可能有多个,找出长度最小的那个。

    例如:N=18 L=2:

    5+6+7 = 18

    3+4+5+6 = 18,输出更短的 5 6 7

    数据范围:1 <= n <= 10^9, 2<= L<= 100

    解法:暴力+剪枝

    暴力枚举起始值和长度,双重for循环。由于需要找到长度尽量小的,所以从L开始枚举到100;起始值从0枚举到N。

    剪枝:如果起始值为i,长度为len,则最后的值为i + len -1

    从1开始到i的总和为f(i) = (1+i) * i /2

    N = f(i+len - 1) - f(i),化简得到  i = N/(len - 1) - len/2

    通过这个表达式可以缩小i的枚举范围。

    代码:

    1. #include
    2. using namespace std;
    3. int main() {
    4. int N, L;
    5. int st, length;
    6. bool found = false;
    7. while (cin >> N >> L) { // 注意 while 处理多个 case
    8. for(int len = L; len <= 100; len++) {
    9. int n = N/(len-1) - len/2;
    10. for(int i = n; i >= 0; i--) {
    11. if((2 * i + len - 1) * len == 2 * N) {
    12. st = i;
    13. length = len;
    14. found = true;
    15. break;
    16. }
    17. }
    18. if(found) break;
    19. }
    20. if(found) {
    21. for(int i = 0; i < length - 1; i++) {
    22. printf("%d ", st + i);
    23. }
    24. printf("%d\n", st + length - 1);
    25. } else {
    26. printf("No\n");
    27. }
    28. }
    29. }

    case举例:

    5050 26

    69564669  12 (1617762 ~ 1617804)

    4950 100

    1000000000 2 (199999998 ~ 200000002)

  • 相关阅读:
    智能驾驶加速“进阶”,这家Tier1巨头如何打造“全栈能力”?
    从 async 和 await 函数返回值说原理
    java毕业设计——基于java+Jsp+Tomcat的牙科诊所管理系统设计与实现(毕业论文+程序源码)——牙科诊所管理系统
    Kubernetes Helm的应用
    机器学习之梯度下降Gradient Descent(李宏毅机器学习)
    SQL sever命名规范
    Redis 数据迁移篇之redis-migrate-tool工具使用手册
    【Flutter】【package】badges 徽章
    【论文阅读笔记】Supervised Contrastive Learning
    阿里云服务器x86计算架构ECS实例规格汇总
  • 原文地址:https://blog.csdn.net/u012841845/article/details/132909680
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号