摘要: 可重集全排列公式。 从首位开始向后扫,对于第 i 位的数字 num[i],假设小于 num[i] 的数有 k 个,那么可以在第 i 位任选其中的一个,剩下的每一位可以随便取,对应的排列数 k*Π(sum-(j-i)) (i<j<=n),sum是所有可供使用的数字的数量,又因为有元素重复使用,再依次除 阅读全文
posted @ 2018-04-15 14:08 qjs12 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 这是我的第一道树形动规,记得那时候写完很懵。 时间久了也忘了,好像确实刚做完题就写题解更好吧,能把细节说的明白。 先挖坑吧,中午睡晚觉再填。 我睡醒走天涯。 阅读全文
posted @ 2018-04-12 09:05 qjs12 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 套用Dijstra算法求解。 因为概率是越乘越小,而我们要求最大的。 而路程是越加越长,我们要求最短的。 所以可以套用最短路贪心算法。 但是求最长路就不能用套最短路算法,而要边权取负,同加一个数为正这种方法。 阅读全文
posted @ 2018-04-12 09:01 qjs12 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 第一次我无脑敲了个生成排列+归并求逆序对。 十分。 然后发现就是很简单的递推。 因为是1~n的排列。 每次新加一个数 n+1,且新加的这个数是最大的,假设它放在第 i 位后,新生成的逆序对就是 n-i。 用 f[i][k] 表示1~i的排列中有k个逆序对的排列数。 f[i][k] = Σf[i-1] 阅读全文
posted @ 2018-04-12 08:53 qjs12 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 贪心还是比较好想的。 注意竖切次数为上下分离的巧克力块个数,横切次数为左右分离的巧克力个数。 竖切增加左右分离的巧克力个数,横切增加上下分离的巧克力个数。 阅读全文
posted @ 2018-04-12 08:34 qjs12 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 大白书上的题,不想再写上来了。 总结一下这种题的方法吧。 最重要的就是表达。 单个对象的表达,到整体的表达。 用清晰简单的数学形式表达。 再通过形式的转化找到单个对象之间的联系与规律,继而找到突破口。 最后这道题还是很灵活的啊,绝对值转数轴点距,以及中位数的应用,我是觉得推出来不简单。 30分暴力的 阅读全文
posted @ 2018-04-12 08:29 qjs12 阅读(96) 评论(0) 推荐(0) 编辑
摘要: X2 + Y2 = n2 X2 = n2 - Y2 X2 = ( n + Y ) * ( n -Y ) gcd ( n + Y , n - Y ) = d A = ( n + Y ) / d B = ( n - Y ) / d X2 = A * B * d2 ( A,B 一定是完全平方数) A = 阅读全文
posted @ 2018-04-12 08:17 qjs12 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 08年是让我不淡定的一年。 这题我是完全没思路。 正解是容斥原理。 1:预处理完全背包,也就每种硬币可以使用无限次组成面值 S 的方案数。 2:ans = 总方案 - ( c1 超 + c2 超 + c3 超 + c4 超 ) + ( c1,c2 超 + c2,c3 超 +c3,c4 超 + c1, 阅读全文
posted @ 2018-04-11 16:11 qjs12 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 这道题目我并没有AC,得分停留在81。 我用的是 Hash + Splay 。应该是因为我的 Hash 并不能很好的处理名字只有1个字母的情况。 大致说一下思路。 通过 Hash 建立或找到一名玩家的信息,并在 Splay 中实现各个操作,Hash 起到一种衔接作用。 对于本题名次的排名有一个新的约 阅读全文
posted @ 2018-04-11 15:57 qjs12 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 这题挺高能的,但是HAOI2007出两道单调队列+降维的题,而且几乎一样,这样真的好吗...... 首先大体的思路。 假设我们已经知道了对每一个 A*B 的矩阵,被其包含的所有 C*D 矩阵的最小和。 那我们只需要枚举左上角,在 O(1) 计算更新最优解就行了。 考虑实现上述思路。 1:二为前缀和预 阅读全文
posted @ 2018-04-11 15:43 qjs12 阅读(108) 评论(0) 推荐(0) 编辑