![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SRM
splayx
这个作者很懒,什么都没留下…
展开
-
517_600
d[u][v] : 用v - u次交换把第u个至第v个变成升序的方法数t[u][k][v] : 最后一次交换k, k + 1两个位置的数的方法数可见, d[u][v] = sum{t[u][k][v] | k = u, .., v - 1}t[u][k][v] = zh[v - u - 1][k - u] * d[u][k] * d[k + 1][v] 两个状态相互推算!!...原创 2011-09-15 20:51:37 · 102 阅读 · 0 评论 -
525_1000
一个n * n的矩阵,每次操作如下,选择i, j,交换i, j行,交换i, j列,问从一个初始矩阵到达一个目标矩阵的最小操作步数。 经分析发现,这个矩阵是对称的,然后把它看做一个图的连接矩阵表,每次操作就相当于交换两个点的编号。所以现在的问题就是枚举点一一对应的方式,然后找置换环,算出最小的答案就好了。由于可以看出3个点的位置确定了所有点的位置,于是暴力枚举就有办法了。 补...原创 2012-03-14 16:42:08 · 69 阅读 · 0 评论 -
526_1000
给出n个单词和一个goodstring,从n个单词中随机选K个(每次选择是独立的)连接起来,称其为longstring,求goodstring在longstring出现次数的期望。 矩阵乘法卡精度了,而且时间复杂也太高。。 解决这个问题的关键的得到以下结论:在longstring中第m(m > L)个单词出现goodstring的次数只与前面的L个相关,L = ...原创 2012-02-29 20:47:01 · 69 阅读 · 0 评论 -
533_1000
给出n个频率freq[n],用{"pi", "ka", "chu"}构造n个单词work[n],使得任意一个单词不是另一个单词的前缀,求work[0] * freq[0] + work[1] * freq[1] + ...的最小值,及其方法数。 用{"pi", "ka", "chu"}(2, 2, 3)构造一个字典树,联系哈弗曼编码,将freq降序排列,则长的先构造。由于任意一原创 2012-02-28 15:14:29 · 62 阅读 · 0 评论 -
526.5_1000
从N个三元组{matches, red, blue}取出尽量多的组,使得取出的{matches}的任何非空子集的异或都不为0,也就是两个人用来玩NIM游戏,先手必赢。在必赢的情况下,求出最小的sum{red} * sum{blue}.. 问题1:取出的{matches}任何非空子集都是先手必赢,可以采用贪心的方法,利用|{matches}| == 矩阵的质。 问题2:使得sum{r...原创 2012-02-15 21:59:57 · 70 阅读 · 0 评论 -
532_450_1000
450P是个动态规划的题目,由于没有发现本质的状态,没能在比赛中做出来。开始看数据那么小考虑怎么状态暴力求出来,然后再预处理一下,复杂度过不去。思考的方向仍未改变,即还是考虑已处理的点构成的状态,需要记录的信息非常多,而且不能利用奇偶性。就这样纠结到最后。 状态设计:已处理的点构成的状态,未处理的点构成的状态,以上两种情况混合。这里的处理也许换成扫描更合适。 ...原创 2012-02-10 14:09:59 · 64 阅读 · 0 评论 -
528_1000
这个题目转化为以下问题是关键:1. X[i] * P1 + Y[i] * P2 <= cookies[i] (For every i).2. S = X[0] + X[1] + ... X[n-1] = Y[0] + Y[1] + ... Y[n-1] 3. .X[i] + Y[i] <= S ...原创 2012-02-03 08:53:33 · 94 阅读 · 0 评论 -
530_900
Question:S[N]是T[N]的一个置换,求所有S[i]和T[i]差的绝对值的和恰好为moves的置换方法数。 Solution:将S从小到大排序,从左往右进行动态规划。 状态(t, k, s)表示处理到第t个元素,它(不包含)之前有k个元素是要跟它(包含)后面的元素匹配的,s表示下来(包含)的匹配的所有差的绝对值的和。 注意到一点第t个元素前面的还未用来匹配...原创 2012-02-01 12:38:40 · 83 阅读 · 0 评论 -
519_900
1. 数据小, 充分挖潜数据的特点2. 该DP的DP, 该枚举的枚举3. 注意将一些枚举简化成O(1)的式子: a[i] + a[i + 1] + ... + a[j] = sum[j] - sum[i - 1] import java.util.*;import java.util.regex.*;import java.text.*;import jav...原创 2011-09-20 16:06:35 · 64 阅读 · 0 评论 -
561_500
用stl的complex挺方便的,记住这几个函数就够用了arg(t);返回值(-pi, pi]real(t);imag(t);abs(t); 然后把complex的除法运算优化成乘法运算,效率就够用了。 const double pi = acos(-1.0);const double eps = 1e-9;typedef complex<doub...原创 2013-01-05 00:04:38 · 109 阅读 · 0 评论