• 纪中第十六天


      今天退步了,变成了第八名

      T1:我不知道我为什么不想写(不会),感觉是迪杰斯特拉

    某个人X 直接给另一个人Y 转账后,假如Y 收到了亡元钱,手续费为:% ,那么X 花费了亡/( 1 一:% )元钱。假如X 和Y 之间可以直接转账且手续费为:%的话,我们连接一条边并赋权值为l / ( 1 一:% )。为了计算A 最少需要花费多少钱,我们需要找到一条路,使得B 到A 走过的路的权值乘积最小。由于权值都是大于1 的数(总是越乘越大),因此我们可以用Dijks 七ra 算法。至于权值乘积最小为什么也能用最短路算法,这可以用Dijkstra 算法的原理来解释,这里不再叙述。

      T2:01背包 看下一篇题解

      T3:不会,后面才知道:

    题目描述不复杂,但是看起来很繁琐。因此,本题很考察选手的细心程度。由于规模很小,本题也不需要什么高级数据结构,只需要按照题意操作即可。
    对于具体的实现方式,各人有不同的方法。每次有新的定义时直接计算该单元格的值是错误的,因为sum 和avg 的单元格必须随时更新(题目说明了这样的单元格必须恒等于要求的数值和或平均数)。我的方法是,每次有新的单元格被定义后,递归地计算出每个格子的值;如果计算过程中遇到某个由sum 或avg 定义的单元格,递归地调用它。储存下已经计算出的格子的值(相当于记忆化搜索)可以防止重复运算,提高效率。由于不会出现循环定义,因此该递归过程总有结束的时候。

      T4:应该是提高组的题目,感觉还挺难,但是经过一番思考,原来只是暴力

          首先我们将x 分解质因数 

                     比如100=2^2*5^2

          然后我们用a 数组装下这些质数的次方

          第一的答案tot既为  a 数组的和    既2+2=4

          第二个答案用排列组合

          用tot的阶乘除(a[i]!*…a[m](a[i]<>0) 的阶乘)

          也就是4!/(2!*2!)

          既为第二个答案

          同时注意将1至20的阶乘全部求出来,方便直接调用。

      努力

  • 相关阅读:
    撤回本地的提交
    antd Table每列样式修改
    大数组拼树
    滑动加载
    数组合并去除重复内容
    获取前一周期日期
    js 对象根据value获取对应的key
    less git上传问题处理
    5G
    Linux怎么安装node.js
  • 原文地址:https://www.cnblogs.com/WestJackson/p/11372281.html
Copyright © 2020-2023  润新知