社区
C++ 语言
帖子详情
这道算法题怎么做?
yjcq
2006-05-22 10:24:08
输入二个整数C,M。(C>1)(M可以很大,小于10^1000)
问M能否用C的幂集(C^0, C^1, C^2, ..., C^i )中的元素相加得到,如能得到,返回需要的C的幂集中的元素的个数,如不能,返回-1
如输入2 63 得到6
如输入10 11111111111111111111 得到20
...全文
169
5
打赏
收藏
这道算法题怎么做?
输入二个整数C,M。(C>1)(M可以很大,小于10^1000) 问M能否用C的幂集(C^0, C^1, C^2, ..., C^i )中的元素相加得到,如能得到,返回需要的C的幂集中的元素的个数,如不能,返回-1 如输入2 63 得到6 如输入10 11111111111111111111 得到20
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yjcq
2006-05-23
打赏
举报
回复
应该用贪心算法, 先用一个最大的可能幂去减W,
如何找到一个最大的可能幂呢?W可能很大,要用到大整数的乘法吗?
femalelover
2006-05-22
打赏
举报
回复
我晕,还设什么开关,分治法这里不适用,差点误导人了.
应该用贪心算法, 先用一个最大的可能幂去减W,这个幂就是当前最优,再求次大的幂...;这算是一轮,一轮下来,可能匹配失败, 失败的话,再用次大幂作当前最优解,求....找到为止,最后必须有重复时,则求解失败.
去网上搜答案,应该不难,时间复杂度是O(N^2).
jiayu7_7
2006-05-22
打赏
举报
回复
#include<iostream>
#include<cmath>
using namespace std;
void main()
{
int c;
bool flag=true;
long double m,k(0);
cin>>c>>m;
while(flag)
{
if(m<pow(c,k)&&int(m)!=0)
{
cout<<"no"<<endl;
break;
}
else if(m<pow(c,k))
{
cout<<k<<endl;
break;
}
m=m-pow(c,k);
k++;
}
}
试试行不????
femalelover
2006-05-22
打赏
举报
回复
由于你的W值多大未定义,所以可以设置一个开关,当W不大于某个数时,如10^4,就用穷举法,递归求解; 大于开关时,用分治法,效率肯定很高.
femalelover
2006-05-22
打赏
举报
回复
楼主的提法可能有点问题,如果允许C的幂重复出现,则C^0=1,故总是可返回一个答案.
如果不允许重复.....我想想.
[最新整理公布][汇总II]微软等数据结构+
算法
面试100
题
[第1-80
题
]
可以这么说,绝大部分的面试
题
,都是这100 道
题
系列的翻版, 此微软等公司数据结构+
算法
面试100
题
系列,是极具代表性的经典面试
题
。 而,对你更重要的是,我自个还提供了答案下载,提供思路,呵。 所以,这份资料+...
微软等数据结构+
算法
面试100
题
全部答案集锦
在此之前,由于本人笨拙,这微软面试100
题
的答案只整理到了前60
题
(第1-60
题
答案可到本人资源下 载处下载:http://v_july_v.download.csdn.net/),故此,常有朋友留言或来信询问后面40
题
的答案。只是 因个人认为:...
[珍藏版]微软等数据结构+
算法
面试100
题
全部出炉[100
题
V0.1最终完美版]
如今,要好好专心去
做
因这100
题
而被耽误的、其它的事了。 这微软等数据结构+
算法
面试100
题
系列(
题
目+答案),到底现在、或此刻、或未来, 对初学者有多大的意义,在此,我就不给予评说了。 由他们自己来认定。所谓...
刷完 900 多道
算法
题
的首次总结:LeetCode 应该怎么刷?
刷完 1000 道
算法
题
是什么体验?大家都是怎么刷
题
的? 新手小白开始刷
算法
题
应该怎么刷,注意什么?刷 LeetCode 总是觉得太难怎么办? 刷
算法
题
有没有书籍推荐?该按照什么顺序刷
算法
题
?LeetCode 怎么看别人的
题
解...
算法
题
做
到崩溃?刷了几千道
算法
题
,关于如何刷
题
有些话我想对你说
算法
刷到最后,最后记在脑子里的不是代码,是思路,如果你有思路,那你一定能把代码写出来,你不可能记住所有
题
的代码,唯一可以记住的是解
题
思路,所以怎么码代码不是一个问
题
,怎么解
题
才是一个问
题
,建议刷
题
的...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章