码迷,mamicode.com
首页 > 其他好文 > 详细

纪中第十六天

时间:2019-08-18 15:55:56      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:题解   搜索   方式   我不知道   遇到   努力   分解   记忆   记忆化   

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

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

 

  努力

纪中第十六天

标签:题解   搜索   方式   我不知道   遇到   努力   分解   记忆   记忆化   

原文地址:https://www.cnblogs.com/WestJackson/p/11372281.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!