23/2/22学习记录(最小公倍数,动态规划)

1. printf( )输出时保留小数则需要printf("%0.xf",n),保留x位小数

2. 求最大公因数和最小公倍数,最小公倍数即是两数之积除以最大公因数。

int func1(int a,int b)
{
    int temp;
    while(a*b!=0)
    {
        temp=a%b;
        a=b;
        b=temp;
    }
    return a;
}

3. 动态规划

  • 判断依据:1.计数(如多少种方式走到右下角,多少种方法选出k个数使和为sum)

2.最值(如左上到右下路径最大,最长上升子序列)

3.存在性(如取石子,能不能选出k个数使和为sum)

  • 组成部分:(举例理解: 由三种硬币面值分别为2,5,7组合成27,要求硬币数最少
  • 1. 确定状态:创建一个数组f[ ]或者dp[ ][ ]等,每个元素代表什么,相当于定义未知数。确定状态需要两个意识
  • -最后一步
  • (最优策略:K枚硬币a1、...、ak,一定有最后的硬币ak,除掉最后一枚,前面和为27-ak),不关心K-1枚硬币怎么拼出27-ak,甚至不知道K,ak,但确定前面的硬币拼出27-ak,但是因为是最优策略,所以拼出27-ak的硬币数一定要少
  • 子问题。
  • 最少要用多少枚硬币拼出27-ak,于是将问题转化成一个子问题并且规模更小,简化定义设状态f(X)=最少用多少枚硬币拼出X。最后的ak只能是2、5、7,所以f[ 27 ]=f[ 27-2|5|7 ]+1
  • 所以f[ X ]=min{f[ X-2 ]+1,f[ X-5 ]+1,f[ X-7 ]+1}
  • 2. 转移方程:
  • 设f[X]=最少用多少枚硬币拼出X,对任意X,有f[ X ]=min{f[ X-2 ]+1,f[ X-5 ]+1,f[ X-7 ]+1}
  • 3. 初始条件和边界情况:
      • f[ X ]=min{f[ X-2 ]+1,f[ X-5 ]+1,f[ X-7 ]+1},X-2|X-5|X-7小于0怎么办?什么时候停下来?
      • 若不能拼出f(Y)则定义f(Y)=正无穷
      • 初始条件f[ 0 ]=0
      • 4. 计算顺序:
      • 从小到大或者从上到下从左到右(之前所得结果保存下来)
  • 简单题:机器人走方格的方案数请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)从棋盘左上角出发沿着边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。
全部评论

相关推荐

05-30 18:54
武汉商学院 Java
湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-19 14:46
和女友两个人马上毕业,现在我在鹅实习995,周六日偶尔也去北京;她在北京金融007,经常忙到后半夜,周末也没啥休息机会两个人现在都不咋聊天了,一句话隔半小时甚至半天才回。 她是个很优秀的妹子,工作也很努力,是值得学习一辈子的人。我在努力工作求转正,即便不行至少赚到了一段不错的实习经历。已经异地了半年,接下来可能还会持续是这个状态。我们都算是对方重要的人,只是感觉看上去不是很有未来的样子。希望牛友们给点的鼓励
梦旅奇缘:很难。异地首先就已经很难了,加上妹子是金融行业,忙碌高压,对情感需求很高,而且见惯纸醉金迷,你的很多优势在她那里可能就不算什么了。这种情况下,在她们那里遇到一个能及时照顾她的人,即使那人可能很多条件不如你,你也有可能被分手。 说白了,两个卷王就不太适合在一起。因为卷王最大的优势,在另一个卷王那里就不算优势了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务