hdu2058 The sum problem
来源:互联网 发布:js中split的用法不支持 编辑:程序博客网 时间:2024/05/16 14:03
The sum problem
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 10174 Accepted Submission(s): 3111
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 1050 300 0
Sample Output
[1,4][10,10][4,8][6,9][9,11][30,30]
找一个子序列的和等于M,那么这个子序列可以看成a+1, a+2, ... , a+d 这时,d就为这个序列的长度,起始数字就是a+1,而这个序列的和即M=a*d + (1 + d) * d /2;得出d*d<2 * m,从而可以枚举d,计算出a
#include<iostream>#include<cmath>using namespace std;int main(){ int n,m; int d,b; while(cin>>n>>m && (n||m)){ for(d=sqrt(2.0 *m); d>0;d--){ b=m-(d+d*d)/2; if(b%d==0) cout<<"["<<(b/d)+1<<","<<(b/d)+d<<"]"<<endl; } cout<<endl; } return 0;}
网络上的其他相关代码:
#include <stdio.h>#include <math.h>int main(){int n, m, len, a;while(~scanf("%d%d", &n,&m)){if(!n && !m)break;len = sqrt(double(m * 2)) + 1;//根据等差数列来算,数列长度// m = (a + a + len - 1) * len / 2// m = a * len + len(len - 1)/ 2// m - len * (len - 1) / 2 = a * len//a = m / len - (len - 1) / 2while(--len){a = m / len - (len - 1) / 2;if((a + a + len - 1) * len / 2 == m){printf("[%d,%d]\n", a, a+len - 1);}}printf("\n");}return 0;}
0 0
- HDU2058:The sum problem
- hdu2058 The sum problem
- HDU2058 The Sum Problem
- hdu2058 The sum problem
- HDU2058 The sum problem
- hdu2058 The sum problem
- hdu2058 The sum problem
- HDU2058 The sum problem【数学计算+枚举】
- hdu2058 The sum problem(C语言)
- HDOJ2058 The sum problem
- The sum problem
- The sum problem
- 2058 The sum problem
- hdoj2058 The sum problem
- The sum problem 2058
- The sum problem
- The partial sum problem
- The partial sum problem
- 算法问题分析--邮票问题
- 电脑工作原理是什么?
- 杭电ACM1102——Constructing Roads
- 关于Bitmap
- 网站制作
- hdu2058 The sum problem
- hdu 1422 dp入门题
- Oracle与SqlServer中获取所有字段、主键、外键的sql语句
- 数据结构之哈夫曼树
- MySQL 数据库备份与恢复
- 状态空间描述到传递函数
- Chinese remainder theorem again(中国剩余定理+不互质版+hud1788)
- Ajax 1.服务器端代码配置测试
- JavaIO-JavaIO总结