CSDN第57期编程竞赛活动经验

好难好难,逻辑应该是对的,但都超时了,通过控制数量,才勉强有测试用例通过

题目1、凑数

给定一组n个正整数,要求每次选其中一个数乘以或除以一个素数(称为一次凑数),问至少需要凑数多少次可以把所有的数都凑成相等。

思路,求这n个数的最小公倍数,再依次求每个数跟最小公倍数的商。将其因式分解统计数量求和。
数量少没问题,数量多就超时了
事后想想,应该搞个变量存储数量结果,就可以减少重复运算次数了。
30先分解了,60分解成2*30,这个30的分解过程就可以省略了。

题目2、树的寻路

给定一棵有n个节点且节点编号为1到n的树,求满足以下条件的路径组合数:

1.从节点a到节点b的路径(称为路径ab) 边数为p。

2.从节点c到节点d的路径(称为路径cd)边数为q。

3.路径ab和cd不交,即不存在一个节点既在路径ab、又在路径cd上。

示例 有4个节点,有3条路径,12,23,34,结果有8个
组合应该是
12,34
21,34
12,43
21,43
34,12
34,21
43,12
43,21
我暴力求解,数量少还行,多了就超时了,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值