• 纪中第十六天


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

      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的阶乘全部求出来,方便直接调用。

      努力

  • 相关阅读:
    记一次java程序内存溢出问题
    js 对象数据观察者实现
    requirejs和seajs使用感受
    maven根据不同的运行环境,打包不同的配置文件
    Quartz .net 一直运行失败
    Sql2008R2 日志无法收缩解决方案
    win7 64位英文版 ado驱动
    KB4284826 远程桌面发生身份验证错误,要求的函数不受支持
    Delphi System.zip patch with ZIP64 and LZMA supports
    native excel 文件已经打开的判断
  • 原文地址:https://www.cnblogs.com/WestJackson/p/11372281.html
Copyright © 2020-2023  润新知