码迷,mamicode.com
首页 > 其他好文 > 详细

hihocoder 1543

时间:2017-08-05 11:45:24      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:out   system.in   href   []   oid   ann   string   com   查找   

http://hihocoder.com/problemset/problem/1543

 

题目很简单,最开始想了一下前缀和然后二分查找一下,发现二分很容易找不到答案

然后想起来了$s = \frac{(m+n)*(m-n+1))}{2}$公式,但是并没有想到怎么用,

然后看了一下别人的代码,我们可以枚举系数$(m-n+1)$,从$\sqrt{2*x}$开始枚举

然后如果这个系数是2*a的因子的话,那么看它的平均数是多少

计数个因子的平均数一定是偶数,偶数个因子的平均数一定是奇数

然后根据这个可以判断这个等式是否成立就可以了

 1 import java.math.BigDecimal;
 2 import java.util.Scanner;
 3 
 4 public class Main{
 5     public static void main(String[] args) {
 6         Scanner cin = new Scanner(System.in); 
 7         int t;
 8         long a;
 9         t = cin.nextInt();
10         while((t--)>0){
11             a = cin.nextLong();
12             for(int i = (int) Math.sqrt(2*a);i>0;i--){
13                 if((a*2)%i==0){
14                     if((((a*2)/i)-i)%2!=0){
15                         System.out.println(i);
16                         break;
17                     }
18                 }
19             }
20         }
21     }
22 }

 

hihocoder 1543

标签:out   system.in   href   []   oid   ann   string   com   查找   

原文地址:http://www.cnblogs.com/Tree-dream/p/7289642.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!