HDU/HDOJ 2715 Herd Sums USACO 2003 March Orange
来源:互联网 发布:乌尔古城 3d扫描数据 编辑:程序博客网 时间:2024/06/05 06:13
Herd Sums
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 339 Accepted Submission(s): 162
Problem Description
The cows in farmer John's herd are numbered and branded with consecutive integers from 1 to N (1 <= N <= 10,000,000). When the cows come to the barn for milking, they always come in sequential order from 1 to N.
Farmer John, who majored in mathematics in college and loves numbers, often looks for patterns. He has noticed that when he has exactly 15 cows in his herd, there are precisely four ways that the numbers on any set of one or more consecutive cows can add up to 15 (the same as the total number of cows). They are: 15, 7+8, 4+5+6, and 1+2+3+4+5.
When the number of cows in the herd is 10, the number of ways he can sum consecutive cows and get 10 drops to 2: namely 1+2+3+4 and 10.
Write a program that will compute the number of ways farmer John can sum the numbers on consecutive cows to equal N. Do not use precomputation to solve this problem.
Farmer John, who majored in mathematics in college and loves numbers, often looks for patterns. He has noticed that when he has exactly 15 cows in his herd, there are precisely four ways that the numbers on any set of one or more consecutive cows can add up to 15 (the same as the total number of cows). They are: 15, 7+8, 4+5+6, and 1+2+3+4+5.
When the number of cows in the herd is 10, the number of ways he can sum consecutive cows and get 10 drops to 2: namely 1+2+3+4 and 10.
Write a program that will compute the number of ways farmer John can sum the numbers on consecutive cows to equal N. Do not use precomputation to solve this problem.
Input
* Line 1: A single integer: N
Output
* Line 1: A single integer that is the number of ways consecutive cow brands can sum to N.
Sample Input
15
Sample Output
4
Source
USACO 2003 March Orange
其实是水题的。结果我写的很复杂
因为考虑到如果用一重循环的话,势必会解方程。
我不喜欢解方程,于是写了一个二分查找来找方程的解
方法:枚举长度,二分起点
注意到数据量比较大
所以需要把数据变为__int64的
我的代码:
#include<stdio.h>#include<string.h>typedef __int64 ll;ll m;ll cal(ll s,ll x){return (2*s+x-1)*x;}ll binary_search(ll x){ll left,right,mid,tmp;left=1,right=m/2+1;while(left<=right){mid=(left+right)>>1;tmp=cal(mid,x);if(tmp==2*m)return mid;else if(tmp<2*m)left=mid+1;elseright=mid-1;}return -1;}int main(){ll i,tmp,num,cnt=1;while(scanf("%I64d",&m)!=EOF){num=0;for(i=2;i*i<=2*m+10;i++){tmp=binary_search(i);if(tmp!=-1)num++;}printf("%I64d\n",num+1);}return 0;}
- HDU/HDOJ 2715 Herd Sums USACO 2003 March Orange
- hdoj-2715-Herd Sums
- hdu 2715 Herd Sums
- HDU 2715 Herd Sums
- USACO Herd Sums -- 奇因子个数
- HDU 2715 && POJ 2140 Herd Sums (考虑一个近似)
- 杭电2715 Herd Sums
- Herd Sums
- Herd Sums
- Herd Sums
- POJ 2140 Herd Sums
- pku 2140 Herd Sums
- (POJ2140)Herd Sums
- poj 2140 Herd Sums
- POJ 2140 Herd Sums
- POJ2140:Herd Sums
- poj 2140 Herd Sums
- HDU2715 Herd Sums
- Socket错误代码对应表
- xml语言定义
- java 利用jquery 前后的交互
- javaRebel(jRebel)使用手记
- 1,2,5,10四个基数任意次数组合相加得到一个数N,求所有可能组合
- HDU/HDOJ 2715 Herd Sums USACO 2003 March Orange
- linux下dup/dup2函数的用法2
- VB.NET数据库另一种添加删除操作
- 一个软件项目主要分为哪些阶段?各个阶段主要做哪些工作?
- 2011-9-19 xml 初步学习
- 實例解析Java jquery json的執行過程
- UML
- python 小程序
- 2011.09.15