社区
数据结构与算法
帖子详情
求大佬说说这道算法题的解法
Rachelint
2018-09-19 09:16:28
输入N个数(可以重复),每个数都是2的整数次幂,问有多少个整数可以表示为这些数中若干个(可以是0个)的和。
例如,输入3个数1,4,4,则0,1,4,5,8,9均可以表示;2,3和6则不行。
我的思路是先解决N个数不可重复的情况,这样的话,2的整数次幂这个条件可以派的上用场,但之后就不知道怎么继续了。
其
...全文
339
8
打赏
收藏
求大佬说说这道算法题的解法
输入N个数(可以重复),每个数都是2的整数次幂,问有多少个整数可以表示为这些数中若干个(可以是0个)的和。 例如,输入3个数1,4,4,则0,1,4,5,8,9均可以表示;2,3和6则不行。 我的思路是先解决N个数不可重复的情况,这样的话,2的整数次幂这个条件可以派的上用场,但之后就不知道怎么继续了。 其
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
636f6c696e
2018-10-16
打赏
举报
回复
先排序,然后做简化,3个同样的2次幂等价于1个2次幂+1个2的高次幂
Black_Blade
2018-10-12
打赏
举报
回复
算法如下:
输入:input[]
初始化S = {0}
for i = 1 to n:
S' = { x + input[i] | if x in S}
S = S ∪ S'
输出:|S|
以为输入是大于0的,S可以以一个递增的链表来表示,这样解决结果的复杂度为O(n^2)
idealguy
2018-10-03
打赏
举报
回复
将给定的数分成n组,用两个数组A(i), N(i), i=1..n,表示,A(i)表示每个不重复的数, N(i)表示每个数的重复次数。
然后就归结为一个“任意重循环”问题。 请参阅:
完美实现任意重循环 https://bbs.csdn.net/topics/300028827
idealguy
2018-10-03
打赏
举报
回复
楼上更正
1)给定一个整数,问能否表示为这些数中若干个的和?(可以是0个(否),>
=
1个(是))
idealguy
2018-10-03
打赏
举报
回复
“输入N个数(可以重复),每个数都是2的整数次幂“,原题的提问目标不明确:”问有多少个整数可以表示为这些数中若干个(可以是0个)的和。”,可以有两种可能:
1)给定一个整数,问能否表示为这些数中若干个的和?(可以是0个(否),>1个(是))
2) 问有多少个整数可以表示为这些数中若干个(至少一个)的和。因为零个没有意义。
这两种情况的算法完全不一样。
tanta
2018-09-19
打赏
举报
回复
C#的实现:
private void button1_Click(object sender, EventArgs e)
{
int[] N = { 1, 4, 4 };
Array.Sort(N);
Array.Reverse(N);
int Num = int.Parse(textBox1.Text);
foreach(int i in N)
{
if(Num >=i)
{
Num -= i;
}
}
if(Num ==0)
{
label1.Text = "可以";
}
else
{
label1.Text = "不行";
}
}
tanta
2018-09-19
打赏
举报
回复
我给你一个思路,你看可不可以:
N个2的整数次幂从大到小排序,分别是n1,n2
输入的数为X,
循环n1,n2...
如果X大于循环中的n,就从中减去
循环结束后,判断,有剩余,说明不行,有,说明行。
dceacho
2018-09-19
打赏
举报
回复
先简化输入,去掉一些没用的,如果一个数至少出现了三次,则可以合并其中的2个
比如,2,4,4,4,32,32,32,32
4+4=8,所以这两个4可以做到的单个8也能做到
优化后就剩 2,4,8,32,32,64了
不停的优化至不能再优化
然后一个数重复次数就不超过3次了, 所以即使是64位,简化后的输入个数也最多是128个数字(每个数字出现2次)
最多128个数字算组合然后去掉可能重复的,复杂度还是可以接受的
算法
进阶#搜索#A
T1-Godfather
求
一棵树的重心
解法
这是一个模板,一边dfs一边
求
解 AC代码 #include<bits/stdc++.h> using namespace std; struct node{int to,next;}a[100010]; int t,n,cnt,x,y,head[50010],size[50010],vis[50010]...
游记#2019杭师大ACM
吐槽 奇特的A
题
速度,第1个小时A了4道,之后花2个小时A了1道,然后就没有了(:з」∠) 莫名其妙的被拍了很多照片,好烦啊(•́へ•́╬) 这里就放一下我之前A掉的和之后订正出来的
题
吧╮(╯▽╰)╭ T1-Little Sub and Applese 读入字符串,把末尾的句号改成逗号。注意多组数据。
解法
标准签到
题
,不
说
了qwq ac代码 #include&l...
字节面试高频百
题
(四)
继续分享面试经常出现的
算法
题
和
解法
。第一部分见:字节面试高频百
题
(一)第二部分见:字节面试高频百
题
(二)第三部分见:字节面试高频百
题
(三)61、反转数字牛客 57 反转数字https://www.nowcoder.com/practice/1a3de8b83d12437aa05694b90e02f47a?tpId=117思路:注意不能引入 long 类型通过
求
余倒着计算结果,每加入一个字符要判断下...
C语言必刷的7道
算法
题
|从RAPTOR流程图到代码实现(成都工业同款)
本文精选了7道C语言经典
算法
题
,包括水仙花数、百钱买百鸡、猴子吃桃等,从RAPTOR流程图到代码实现详细解析,帮助编程新手掌握基础
算法
思维。这些
题
目是成都工业等高校的常见练习,特别适合C语言初学者提升编程能力。
剑指offer合集(第二波)
题
目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。
求
该青蛙跳上一个n级的台阶总共有多少种跳法。 解
题
思路:
这道
题
为比较简单的状态转移动态规划
题
。f(n)=f(n-1)+f(n-2)+f(n-3)....f(1)+f(0);定义一个数组,二层for循环可以得到答案,
题
目数据量应该不大,数组定义100*int足够。 class Solution { public: ...
数据结构与算法
33,025
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章