社区
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
...全文
175
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
作业
写回复
配置赞助广告
用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,故总是可返回一个答案.
如果不允许重复.....我想想.
刷完 900 多道
算法
题
的首次总结:LeetCode 应该怎么刷?
LeetCode
算法
题
应该怎么刷?
算法
题
学习路线?怎么组队刷
题
?有没有
算法
刷
题
群? 你是怎么入门 LeetCode 的?刷完 1000 道
算法
题
是什么体验?大家都是怎么刷
题
的? 新手小白开始刷
算法
题
应该怎么刷,注意什么?刷 LeetCode 总是觉得太难怎么办? 刷
算法
题
有没有书籍推荐?该按照什么顺序刷
算法
题
?LeetCode 怎么看别人的
题
解?有哪些好的
算法
题
博主推荐?
算法
题
做
到崩溃?刷了几千道
算法
题
,关于如何刷
题
有些话我想对你说
算法
刷到最后,最后记在脑子里的不是代码,是思路,如果你有思路,那你一定能把代码写出来,你不可能记住所有
题
的代码,唯一可以记住的是解
题
思路,所以怎么码代码不是一个问
题
,怎么解
题
才是一个问
题
,建议刷
题
的时候这样刷,看到一道
题
,先想想怎么解,如果是你的话你会用什么方法去解,想好了以后用代码实现一遍,看能不能行,一般把想法用代码实现后,你的代码跑不通,90%以上的原因不是你的编程问
题
,而是你的思路在某个点...
刷了 1000 多道
算法
题
,一点心得
大家好,我是鱼皮,今天分享一下自己刷
算法
题
目的经验。 程序员为啥要刷
算法
? 因为 “卷啊”! 开个玩笑,其实,
算法
题
目已经成为了公司筛人的一种方式,大厂的每一轮面试基本都会有几道
算法
题
,甚至有的公司笔试全部都是
算法
题
。其他
题
目答的都差不多,那你
算法
题
做
不出来,可能就被淘汰了。 所以为啥要刷
算法
题
呢?一方面是帮助你学习和理解
算法
,但另一方面也是像背公式、背八股文一样,增加你面试时碰到原
题
的概率。我刷了 1000 多道
题
嘛,不夸张的说,在面试的时候 80% 的
算法
题
都是原
题
。 当然,每个人学
算法
、刷
题
的目标是不
互联网公司社招还会问
算法
题
么?
先说结论,无论你职级高低,一定会问。 通常情况下,互联网社招是4-5轮面试,至少会有1-2轮
算法
题
。 值得注意的是,如果在面试中你已经展示出了较好的
算法
基础和技术能力,
算法
轮可能会“走个过场”,面试官简单出两道easy或者medium
题
。但如果面试官无法从面试中判断你的能力水平,就只能通过
题
目来考(卡)你。 想拿下
算法
面试,很多人的第一反应就是刷
题
。我在脸书当了5年面试官,期间面试超过500+人,也接触过不少求职者,发现大多数人在刷
题
时都存在这些问
题
: ①要刷的
题
目太多,短时间备战面试的情况下根本刷
2020最新-精选基础
算法
100
题
(面试必备)
0x01.概述 作为一个程序员,
算法
能力必不可少,虽然不一定是
算法
工程师,但是
算法
还是彰显着个人的编码能力,面试中也经常会被问到,甚至会被要求临场
做
算法
题
,所以,还是好好积累吧。 个人其实对
算法
挺有兴趣的,从3月份开始,陆陆续续刷了一些
算法
题
,把一些有意义的记录下来了,也顺便写了一些
题
解,个人认为,还是挺有收获的。 之前写了一篇
算法
文章的目录,不过后来就忘了实时去更新了,于是现在,想把之前
做
过的一些有意义的
算法
题
分享出来,刚好整理了100篇比较有意义的。希望对大家有所帮助。 0x02.说明 关
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章