题意:
有一个函数f(y, k) = y的每个十进制位上的数字的k次幂之和
给x, k 求 有多少个y满足 x = f(y, k) - y

思路:
(据说这叫中途相遇法?)
由于 x >= 0 所以 显然y最多也不会超过10位数
把一个数拆成前5位 和 后5位
即找有多少对(a, b)满足 x = a + b
把所有的后五位预处理出来,然后再找前五位。
找的时候用二分,mapT了。。可能组数太多了吧。

具体看代码

 const int maxn =  + ;

 LL num[maxn];
int x, k;
LL p[][];
LL sum[maxn];
int idx; void init()
{
memset(sum, , sizeof(sum));
idx = ; scanf("%d%d", &x, &k);
for (int i = ; i < ; i++)
{
int t = i;
while (t)
{
sum[i] += p[t % ][k];
t /= ;
}
num[idx++] = sum[i] - i;
}
sort(num, num + idx);
} void solve()
{
LL t = ;
LL ans = ;
for (LL i = ; i < ; i++)
{
t = sum[i] - i * ;
int f = lower_bound(num, num + idx, x - t) - num;
while (num[f] == x - t && f < idx)
{
f++;
ans++;
}
}
printf("%lld\n", ans);
} int main()
{
for (int i = ; i < ; i++)
{
p[i][] = ;
for (int j = ; j < ; j++)
{
p[i][j] = p[i][j-] * i;
}
}
int T, kase = ;
scanf("%d", &T);
while (T--)
{
printf("Case #%d: ", ++kase);
init();
solve();
}
return ;
}

HDU 5936 Difference的更多相关文章

  1. HDU 5936 Difference 【中途相遇法】(2016年中国大学生程序设计竞赛(杭州))

    Difference Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

  2. HDU 5936 Difference(折半搜索(中途相遇法))

    http://acm.hdu.edu.cn/showproblem.php?pid=5936 题意: 定义了这样一种算法,现在给出x和k的值,问有多少个y是符合条件的. 思路: y最多只有10位,再多 ...

  3. HDU 5936 Difference ( 2016 CCPC 杭州 D && 折半枚举 )

    题目链接 题意 : 给出一个 x 和 k 问有多少个 y 使得 x = f(y, k) - y .f(y, k) 为 y 中每个位的数的 k 次方之和.x ≥ 0 分析 : f(y, k) - y = ...

  4. HDU 5487 Difference of Languages(BFS)

    HDU 5487 Difference of Languages 这题从昨天下午2点开始做,到现在才AC了.感觉就是好多题都能想出来,就是写完后debug很长时间,才能AC,是不熟练的原因吗?但愿孰能 ...

  5. HDU - 5936: Difference(暴力:中途相遇法)

    Little Ruins is playing a number game, first he chooses two positive integers yy and KK and calculat ...

  6. hdu 4715 Difference Between Primes

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4715 Difference Between Primes Description All you kn ...

  7. HDU 5487 Difference of Languages

    Difference of Languages Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. ...

  8. HDU 5486 Difference of Clustering 暴力模拟

    Difference of Clustering HDU - 5486 题意:有n个实体,新旧两种聚类算法,每种算法有很多聚类,在同一算法里,一个实体只属于一个聚类,然后有以下三种模式. 第一种分散, ...

  9. HDU 5486 Difference of Clustering 图论

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5486 题意: 给你每个元素一开始所属的集合和最后所属的集合,问有多少次集合的分离操作,并操作和不变操 ...

随机推荐

  1. 初学者的python学习笔记2

    本来想是先把作业二搞定的,结果发现作业二用的字典,一脸懵逼,还是先搞定第二课吧.其实第二课和第一课内容差不多,据说是第一课的老师去美国了……不管怎么样先整理一下吧. ----------------- ...

  2. 005-Scala数组操作实战详解

    005-Scala数组操作实战详解 Worksheet的使用 交互式命令执行平台 记得每次要保存才会出相应的结果 数组的基本操作 数组的下标是从0开始和Tuple不同 缓冲数组ArrayBuffer( ...

  3. It will affect staff as well.

    Premier Foods has reduced its number of suppliers dramatically in the last 12 months. In 2013 it mad ...

  4. android 代码优化

    http://android.tgbus.com/Android/androidnews/200812/172247.shtml http://blog.163.com/jzq_520/blog/st ...

  5. 【python】错误/异常处理,调试,测试

    try: print('try') r=10/2 print('result is:',r) #发生错误,会执行这部分 except ValueError as e: print('ValueErro ...

  6. http 请求详解大全

    HTTP 100 Continue继续 101 Switching Protocols切换协议 200 OK正常 201 Created已创建 202 Accepted已接受 203 Non-Auth ...

  7. go 准备

    坚持每天抽点时间 学习联系 go 语法 主要参考 https://tour.golang.org 官方导向,英语不好的可以切换到中文版本.这个之前都是墙外面的,只能访问国内映像地址 吐槽一下就是 里面 ...

  8. MySQL数据库9 - 日期与时间函数

    一 日期和时间函数 函数的概念:按指定格式输入参数,返回正确结果的运算单元 1. 返回当前日期:curdate() current_date() current_date()+0可以将当前日期转换为数 ...

  9. X删除数据表的新用法

    删除数据表,可以这样进行,以前傻不拉唧的用sql去手动删除.             DAL dal = ...             dal.Db.CreateMetaData().SetSche ...

  10. 数据结构《21》----2014 WAP 初试题----Immutable queue

    2014 WAP初试题----实现一个不可变的队列: 看似很简单..实则,不同的版本效率的差距可能是巨大的..甚至难以想象.. 之前用STL库的queue进行了对比,差别非常大.. 用上一篇文章的im ...