UVA-10025-The ? 1 ? 2 ? ... ? n = k problem
来源:互联网 发布:nginx安装指定配置目录 编辑:程序博客网 时间:2024/06/05 10:57
乍眼一看,这题找不出什么规律,可是列举出所有的想法时,就有一点思路了。
这题无非是这样:±1 ± 2 ± 3 ±…± n = k , 找出满足条件的最小 n 。
令S(n)=1 + 2 + 3 + ... + n. 其中一项为x.
那么S(n)=1 + 2 + 3 + ...+ x + ... + n. 这样结果可能大于等于 | k | ,等于最好,即一次算出。
所以我们把+ x 改成- x,此时得到新的关系:S'(n)=1+2+...-x+...+n.
=> S(n)-S'(n)=2x;且k=S'(n).令y=2x.
利用这个特性,找出一个满足条件的y(即y是偶数)即可。
但又有问题,那就是数据问题。题目不知一个数据,每个数据范围相当于|k|≤10^9,所以每次要是从1+2+3+...+n直到≥k时为止,这可能费时。
所以我们可利用等差公式前n项和公式,S(n)=n(n+1)/2,可以大致估略n=√2S(n),从这个开始枚举可快很多。
还有一点就是一个特殊的数据,就是k=0时n=3,而不是n=0,因为按照上面想法去实现会产生0,即判断一下当k=0时,输出3即可;其他的没有特殊情况。
#include <stdio.h>#include <stdlib.h>#include <math.h>int T,k,n,ans,s;int main(){ scanf("%d",&T); for(int t=0;t<T;t++) { if(t) printf("\n"); scanf("%d",&k); if(!k){ printf("3\n"); continue; } k=abs(k); n=(int)sqrt(k<<1); s=n*(n+1)>>1; while(true) { if(s>=k) break; n++; s+=n; } while((s-k)&1) { n++; s+=n; } printf("%d\n",n); } return 0;}
0 0
- UVa 10025 - The ? 1 ? 2 ? ... ? n = k problem
- uva 10025 The ? 1 ? 2 ? ... ? n = k problem
- Uva 10025 - The ? 1 ? 2 ? ... ? n = k problem
- uva 10025 The ? 1 ? 2 ? ... ? n = k problem
- uva 10025 - The ? 1 ? 2 ? ... ? n = k problem
- UVa 10025 - The ? 1 ? 2 ? ... ? n = k problem
- UVA - 10025 :The ? 1 ? 2 ? ... ? n = k problem
- Uva 10025 - The ? 1 ? 2 ? ... ? n = k problem
- uva 10025The ? 1 ? 2 ? ... ? n = k problem
- UVa 10025 - The ? 1 ? 2 ? ... ? n = k problem
- UVA 10025 The ? 1 ? 2 ? ... ? n = k problem
- UVa 10025: The ? 1 ? 2 ? ... ? n = k problem
- UVA 10025 The ? 1 ? 2 ? ... ? n = k problem
- uva 10025 - The 1 2 ... n = k problem
- UVA 10025 The ? 1 ? 2 ? ... ? n = k problem
- UVA 10025 - The ? 1 ? 2 ? ... ? n = k problem
- uva 10025 - The ? 1 ? 2 ? ... ? n = k problem
- uva 10025 - The 1 2 ... n = k problem
- solr安装部署、solr测试创建core、用solrj 访问solr(索引和搜索)
- linux 文件批量重命名
- Eclipse - 循环cin的输出如何终止
- volatile
- Android优化UI规则
- UVA-10025-The ? 1 ? 2 ? ... ? n = k problem
- Swap Nodes in Pairs
- C++设计模式学习笔记一:简单工厂模式
- Hadoop在CentOS下挂载多块数据硬盘
- mysql JDBC URL参数解析
- 创建PowerShell脚本数字签名认证
- 设计模式之中介者模式
- 迈向系统架构师
- nginx的filter的处理