• [瞎搞]JZOJ 3096 Hash函数


    Description

        明明觉得hash是个好算法,代码短、效率高。某天,他碰到了一个求正方形个数的问题,于是很淡定地枚举对角线然后用hash判存在,妥妥的搞定,但是提交后却wa了几个点。仔细观察其hash函数为:h=x*y+x+y 。为了让明明知道这个函数存在什么问题,对于给出一个h值,请你来告诉他有多少对(x,y)满足上述式子(max(x,y)<=h;h,x,y都为非负整数)。


     

    Input

    多组测试数据,第一行为测试点的个数T,接下来每一行一个整数h,意义如上。


    Output

        一共T行,每行一个整数,分别表示有多少组(x,y)满足要其对应的h值。


     

    Sample Input

    3
    1
    3
    4
    

    Sample Output

    2
    3
    2
    
     

    Data Constraint

     
     

    Hint

    【样例解释】


    (1,0),(0,1)


    (0,3),(1,1),(3,0)


    (4,0),(0,4)



    【数据范围】


    对于30%数据 h<=20,000 , T<=1000


    对于100%数据 h<=100,000,000 , T<=10000;

    分析

    式子随便搞一下就会发现是h+1=(x+1)(y+1)

    那就求h+1的因子个数即可

    #include <iostream>
    #include <cstdio>
    #include <cmath>
    using namespace std;
    int h,t;
    
    int main() {
        scanf("%d",&t);
        while (t--) {
            scanf("%d",&h);
            h++;
            int ans=0,st=sqrt(h);
            for (int i=1;i<=st;i++)
                ans+=h%i==0?(i*i==h?1:2):0;
            printf("%d
    ",ans);
        }
    }
    View Code
    在日渐沉没的世界里,我发现了你。
  • 相关阅读:
    CSS 权威指南 CSS实战手册 第四版(阅读笔记)
    iframe交互(一)父页面自动高度
    连接微服务
    学习SQLYog
    sourceTree的安装以及破解
    sql 根据子级ID获取所有父级
    新手Python入门安装(一)
    C# 真正完美的 汉字转拼音
    供应链相关的书和博客
    网易跟帖为什么火
  • 原文地址:https://www.cnblogs.com/mastervan/p/9867328.html
Copyright © 2020-2023  润新知