HDOJ-2058 The sum problem
2015-10-28 15:33
453 查看
[align=left]Problem Description[/align]
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.
[align=left]Input[/align]
Input contains multiple test cases. each case contains two integers N, M( 1 <= N, M <= 1000000000).input ends with N = M = 0.
[align=left]Output[/align]
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.
[align=left]Sample Input[/align]
[align=left]Sample Output[/align]
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.
[align=left]Input[/align]
Input contains multiple test cases. each case contains two integers N, M( 1 <= N, M <= 1000000000).input ends with N = M = 0.
[align=left]Output[/align]
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.
[align=left]Sample Input[/align]
20 10 50 30 0 0
[align=left]Sample Output[/align]
[1,4] [10,10] [4,8] [6,9] [9,11] [30,30]------------------------------------------------------------------------------------------------------------------------------------由于这道题涉及的数字会比较大,刚开始我使用暴力超时,重新思考了一下,发现了新的思路。#include <iostream> #include <math.h> using namespace std; int main() { __int64 m ,n; while(cin>>n>>m,n||m) { __int64 a,k; for(k=(int)sqrt(2*m);k>0;k--)//因为1+2+。。。+(2*m)^1/2>m;所一和为m的元素个数应该小于等于(2*m)^1/2; { a=m/k-(k-1)/2;//假设从a开始一直加到a+k-1,一共k个元素和为m,可以计算出a; if((2*a-1+k)*k==2*m) //(2*m)^1/2可能不是整数,判断是有必要的; cout<<"["<<a<<","<<k+a-1<<"]"<<endl; } cout<<endl; } return 0; }
相关文章推荐
- 计算机网络之应用层
- Linux和Windows下ping
- Autoprefixer:一个以最好的方式处理浏览器前缀的后处理程序
- 性能优化系列总篇
- cisco 3704 重置密码
- JSP中文乱码问题终极解决方案
- AngularJS之Provider, Value, Constant, Service, Factory, Decorator的区别与详解
- case when
- Android4.X中SIM卡信息初始化过程详解
- 部署LyncServer2013之七 启动服务和登陆LyncServer控制面板
- 关于java.lang.IllegalMonitorStateException
- android应用安全——(数据抓包)跟踪监控android数据包
- POST上传文件之分类抽取——以后只需要把分类导入,使用NSMutableURLRequest的分类即可
- 输入数字动态创建行(二)
- webWMS开发过程记录(四)- 整体设计
- 严格模式use strict
- 比特币基础知识
- 如何修改远程桌面的端口号以及修改远程桌面端口的软件
- 携程加入百度系 OTA王座利好呈现
- NSThread - 2