zoukankan      html  css  js  c++  java
  • HDU2058

    The sum problem

    Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 20726    Accepted Submission(s): 6100

    Problem Description

    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

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

    Output

    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.

    Sample Input

    20 10 50 30 0 0

    Sample Output

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

    Author

    8600

    Source

    校庆杯Warm Up

    Recommend

    linle   |   We have carefully selected several similar problems for you:  20592062206020722061

    Statistic | Submit | Discuss | Note

     

    这道题显然不可能直接暴力做出来。技巧在于所有可能数列的长度有最大值。设数列为a+1,a+2 ,…… a+len,则它的长度为len。

    根据公式M=[(a+1)+(a+len)]*len/2化简得出M*2=len*len+(2a+1)*len。所以len一定小于sqrt(2*M)接下来就可以枚举lenAC这道题。

     

     

     1 #include<stdio.h>
     2 #include<math.h>
     3 
     4 int main()
     5 {
     6     int N, M;
     7     while(~scanf("%d%d", &N, &M)) {
     8         if(M == 0 && N == 0) break;
     9         int len = sqrt(double(M * 2));//如果不加double会出现编译错误,sqrt的参数是浮点型的。
    10         while(len) {
    11             int a = M / len - (1 + len) / 2;
    12             if((a + 1 + a + len) * len / 2 == M) printf("[%d,%d]
    ", a + 1, a + len);
    13             len--;
    14         }
    15         puts("");
    16     }
    17     return 0;
    18 }
    View Code

     

     

  • 相关阅读:
    Xamarin Layout属性(转)
    Oracle基础
    tableViewNestTableView(tableView嵌套collectionView)
    抓包工具Fiddler的使用教程(五): 修改response的数据 .
    Web调试利器fiddler
    SQLServer光标
    SQLServer触发器
    web端功能测试总结(一)
    web功能测试
    test zlj
  • 原文地址:https://www.cnblogs.com/xzrmdx/p/5205001.html
Copyright © 2011-2022 走看看