首页 新闻 会员 周边 捐助

老郭有多少种可能*到狗?

0
悬赏园豆:20 [待解决问题]

Description

众所周知,ZiP有一个室友叫老郭,是个满分帅气暖男,只是有个习惯是*狗。
然而老郭是一个强迫症患者,他*的狗必须满足以下条件:
首先他会把n只狗排成一排,从1到n依次编号。
接着他会让ZiP给他报一个整数m。
然后任意选出三只狗编号为x,y,z,如果能满足x^m+y^m=z^m(分别代表x,y,z的m次方),则会把狗*掉。
那么问题来了,对于n只狗,已经ZiP给定的一个数m,老郭有多少种可能*到狗?

 

Input

多组测试数据(不超过10组),每组一行。
有2个数,第一个是n(1<=n<=5000),第二个是m(1<=m<=100)

 

Output

每组输出一行,代表老郭能*到狗的可能数。

 

Sample Input

 

 

3  1
1000  2
1000  1

 

Sample Output

1
881
249500

 

HINT

 

对于第一组样例,(1,2,3)满足,所以输出为1。


(1,2,3)和(2,1,3)视为同一组

c c++
WUSTXIAO的主页 WUSTXIAO | 初学一级 | 园豆:123
提问于:2016-02-21 21:46
< >
分享
所有回答(3)
0

这个,我试着做了一下,思路不太难,难的是如何优化算法,我觉得关键是查找这一步。我写的输入1000 2 的时候大概2s内求出  ,但是 输入 1000 1的时候,就要等好久。

先收藏了,以后再来看吧。

 

lulipro | 园豆:273 (菜鸟二级) | 2016-04-01 18:17
0

z必定能被x和y之和整除,利用这个减少乘法计算次数

牛家村散人 | 园豆:208 (菜鸟二级) | 2017-09-19 15:20
0

直接枚举好像应该就可以了,但是肯定会TLE。。给一下时限,谢谢!

Aehnuwx | 园豆:263 (菜鸟二级) | 2017-12-29 18:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册