原题转化为求a*b*c <=n中选出两个数组成有序对<a,b>的选法数。

令a<=b<=c....

分情况讨论:

(1)全部相等,即a = b = c.

选法有n^(1/3).

(2)有两个相等,则设相等的值为i,枚举i = 1到i*i <= n ,剩下的一个数的最大值为t = n/(i*i).当t >=i时,t = i这一种要删除,因为t = i则三个数都相等了,这种选法有3种,所以ans += 3*(t-1).t<i就ans += 3*t;

(3)三个数都不相等,则枚举a,b,其中b>a,剩下的数的最大值s = n/(a*b),如果s <= b,不满足····,假设s>b,则ans += 6*(s - b ).

分类讨论时要不重复,不遗漏······

贴代码:

 #include<cstdio>
typedef long long int LL;
int main()
{
// freopen("in.txt","r",stdin);
LL n,ans;
int kase = ;
while(~scanf("%I64d",&n))
{
ans = ;
for(LL i=; i*i*i <=n; ++i) ++ans;
int A = ans;
for(LL i=; i*i <=n ; ++i)
{
LL t = n/(i*i);
if(t >= i) ans += *(t-);
else ans += *t;
}
for(LL a=; a<=A; ++a)
{
LL k = n/a;
for(LL b=a+; b*b <= k; ++b)
{
LL s = n/(a*b);
if(s > b) ans += *(s-b);
}
}
printf("Case %d: %I64d\n",++kase,ans);
}
return ;
}

注意n为long long int ·······

HDU 4473 Exam 枚举的更多相关文章

  1. hdu 4473 Exam 数学

    思路: 将条件转化为满足abc<=n的abc的数目. 1.3个数相等时,为 A; 2.有2个数相等时,为 B; 3.都不相等时,为 C. 则结果为A+3*B+6*C. 代码如下: #includ ...

  2. hdu 2489(枚举 + 最小生成树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2489 思路:由于N, M的范围比较少,直接枚举所有的可能情况,然后求MST判断即可. #include ...

  3. hdu 3118(二进制枚举)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3118 思路:题目要求是去掉最少的边使得图中不存在路径长度为奇数的环,这个问题等价于在图中去掉若干条边, ...

  4. HUD 4473 Exam

    题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4473 题目意思 定义f(x) = 满足(a * b)|x的有序对(a,b)的个数. 然后输入一个n, ...

  5. HDU 6351暴力枚举 6354计算几何

    Beautiful Now Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)T ...

  6. HDOJ/HDU 1015 Safecracker(枚举、暴力)

    Problem Description === Op tech briefing, 2002/11/02 06:42 CST === "The item is locked in a Kle ...

  7. HDU 5240 Exam

    The 2015 ACM-ICPC China Shanghai Metropolitan Programming Contest 2015ACM-ICPC上海大都会赛 签到题 #include< ...

  8. HDU 1281 棋盘游戏 (枚举+最大匹配)

    <题目链接> Problem Description 小希和Gardon在玩一个游戏:对一个N*M的棋盘,在格子里放尽量多的一些国际象棋里面的“车”,并且使得他们不能互相攻击,这当然很简单 ...

  9. hdu 5240 Exam(贪心)

    Exam Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

随机推荐

  1. 学习c++

    慢慢的滑向无边无际的没有回头路的程序猿道路.坚持就是胜利. 致渣渣

  2. python: 模块发布

    一.准备发布 1.为模块文件创建一个文件夹,并将模块文件复制到这个文件中(一般,文件夹的名字和模块的名字一样) 2.在文件夹中创建一个名为『setup.py』的文件,内容如下: #encoding:u ...

  3. 学的一点点ps

    从C语言的代码中解脱开始学ps,看到色彩鲜明的东西,心里只有那么爽.哈哈.只学习3天,虽然只是一些皮毛,可还是学到了一些以前不知道的东西.让我对ps多了很多兴趣,决定以后要自学更多的ps技能.要给图片 ...

  4. 【数位dp】

    hdu5787 问:L ~ R有多少个数是K-wolf Number?其中,K-wolf Number的定义是这个数在十进制下,任意相邻的K个字符没有相同的. dp[i][j][k]表示有i个空位可填 ...

  5. .net添加下拉框

    aspx文件 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="DropDownL ...

  6. Thread-0" kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries.

    http://blog.csdn.net/jingshuigg/article/details/25001979 zookeeper.connect=localhost:2181改成zookeeper ...

  7. News common vocabulary

    英语新闻常用词汇与短语 经济篇 accumulated deficit 累计赤字 active trade balance 贸易顺差 adverse trade balance 贸易逆差 aid 援助 ...

  8. SPSS数据分析—多重线性回归

    只有一个自变量和因变量的线性回归称为简单线性回归,但是实际上,这样单纯的关系在现实世界中几乎不存在,万事万物都是互相联系的,一个问题的产生必定多种因素共同作用的结果. 对于有多个自变量和一个因变量的线 ...

  9. 6/17 Sprint3

    首页改进:

  10. 20169212《Linux内核原理与分析》第一周作业

    实验 使用touch创建文件: man手册的内容很多,涉及了Linux使用过程中的方方面面,为了便于查找,是做了分册(分区段)处理的,在Research UNIX.BSD.OS X和Linux中,手册 ...