摘要: 题目求n个互不相同的数,满足其和为其lcm。我们把lcm看成一个线段,分割成长度不同的n份。当然分法有很多,我们只需要构造一个好想好写的。先分成两个二分之一,取其中一个二分之一再分成1/3和2/3,接下来每次取1/3的分成1/3和2/3。11/2 1/21/2 2/6 1/61/2 2/6 2/18 阅读全文
posted @ 2016-07-23 16:20 水郁 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 题目每次把空列换到最后一列,把非空行换到最下一行。 阅读全文
posted @ 2016-07-23 13:51 水郁 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 题目链接 第一种解法是$O(n^3*p)$的:f[i][j][k]表示前i个人进j个人长度为k有几种方案(排列固定为123..n时)。$f[i][j][k]=f[i-1][j][k]+f[i-1][j-1][k-a[i]]$最外层枚举t表示被卡的那个人。i=t时不加上f[i-1][j-1][k-a[ 阅读全文
posted @ 2016-07-23 12:44 水郁 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 有理数的树,根节点是1/1,左儿子是1/2,右儿子是2/1...。求给定的分数是第几个,或者给定n求第n个分数。递归。给定的分数,每次递归,如果分子比较小,就用分母减去分子,并且这是左儿子。反之是右儿子,终点是分子分母相等。求第n个,每次递归,如果n是奇数(为右儿子),新的分子是分子加分母。终点是n 阅读全文
posted @ 2016-07-23 00:49 水郁 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 题目链接 正经解法: 给定n个点的坐标,找一个点,到其他点的曼哈顿距离之和最小。n可以是100000。大概要一个O(nlogn)的算法。算曼哈顿距离可以把x和y分开计算排好序后计算前缀和就可以在O(1)时间内判断一个点到其他点的距离。 缩小范围法: 另外一种做法,当时我就是这么想的,但是后来没敢交, 阅读全文
posted @ 2016-07-23 00:03 水郁 阅读(591) 评论(0) 推荐(0) 编辑
……