摘要: 第二次mock。出的题是,假设有一个地区不能使用7,都用之后的数字代替,比如8代表7,18代表16(中间有7和17).那么给出一个这个地区的数X,求普通地区的数Y。首先是找规律,发现其实就是找给出的数X之前带有7的个数diff,然后输出就是X-diff。之后就是怎么找带有7的数字的个数。想的过程中,隐隐约约觉得,比如求一个数1394,那么应该要用到10以内或100以内的带7的数字的个数,于是就想把它们存起来。F[1]表示1~10之间的带7的数字,是1,然后F[2]表示1~100之间的,是19。然后推出了递推公式,F[i+1]=F[i]*9 - 10 ^(i+2)然后拿个数字做试验,结果一开始拿 阅读全文
posted @ 2013-10-11 22:25 阿牧遥 阅读(226) 评论(0) 推荐(0)
摘要: 最短路径,Dijkstra算法。根据题意将每种物品看成每个顶点,优惠价格看成边,便构成一有向图,然后可以用Dijkstra求解。因为有等级限制,求一次Dijkstra是不行的。思想是枚举0~L的每一种限制i,除去不在区间[rand[1]-i,rand[i]+m-i](rand[1]为酋长的等级)的顶点,然后Dijkstra,取其中最小的。例如假设酋长等级为5,等级限制为2,那么需要枚举等级从3~5,4~6,5~7。从满足改等级范围的结点组成的子图中用Dijkstra来算出最短路径,最后求出最小值。构图时要注意的是,酉长的承诺不是最初的源点,它是一个目标点,也就是说点到点的指向方向是由无替代品的 阅读全文
posted @ 2013-10-11 15:45 阿牧遥 阅读(200) 评论(0) 推荐(0)