05 2017 档案

摘要:题目链接 http://poj.openjudge.cn/practice/C17J/ orz 原来是一道无脑枚举题目 只是很卡常数而已 复杂度算错也是很醉orz 当时怎么没想着优化常数呢 题解:枚举x,p,y,就可以了 当然,普通暴力枚举肯定会超时,复杂度是M^1.5 (一开始算的是M^1.5lo 阅读全文
posted @ 2017-05-28 23:12 Saurus 阅读(308) 评论(0) 推荐(0)
摘要:感觉快速沃尔什变换和快速傅里叶变换有很大的区别啊orz 不是很明白为什么位运算也可以叫做卷积(或许不应该叫卷积吧) 我是看 http://blog.csdn.net/liangzhaoyang1/article/details/52819835 里的快速沃尔什变换 这里说一下自己的理解吧,快速傅里叶 阅读全文
posted @ 2017-05-26 18:39 Saurus 阅读(1174) 评论(0) 推荐(0)
摘要:题目大意就是字符串匹配,不过有一个门限k而已 之前有提到过fft做字符串匹配,这里和之前那种有些许不同 因为只有A,C,G,T四种字符,所以就考虑构造4个01序列 例如,模板串a关于'A'的01序列中,1代表这个位置可以匹配,而0则代表不能匹配。 这样构造出4个序列后,再对匹配串b做同样的处理 下面 阅读全文
posted @ 2017-05-26 17:16 Saurus 阅读(801) 评论(0) 推荐(0)
摘要:题目大意:给出一个黑白图,你可以选定一个俄罗斯方块的区域,黑白翻转,问能否变成白图 比较trick的题目, 首先可以想到,奇数个1肯定是无解的,所以考虑偶数个1 可以先讨论n是2的情况 当n为2时,其实除了m也等于2时需要特判外,都是可行的(因为你可以不断地往右侧推进,最后变成4个1) 所以n为偶数 阅读全文
posted @ 2017-05-25 00:12 Saurus 阅读(242) 评论(0) 推荐(0)
摘要:比赛时候写的,这里整理到这里 阅读全文
posted @ 2017-05-23 12:12 Saurus 阅读(186) 评论(0) 推荐(0)
摘要:挖坑,以后还会更新吧 做数学建模画图使用了matplotlib和numpy,这里简单总结一下常用的用法 一、数据拟合 1、np.polyfit(x, y, n) 使用n次多项式去拟合x,y散点图,返回各个项的系数 2、np.poly1d(a) 返回一个a数组描述的多项式函数 3、np.linspac 阅读全文
posted @ 2017-05-18 21:07 Saurus 阅读(3013) 评论(0) 推荐(0)
摘要:第一次写如此复杂的树链剖分, 感觉自己代码能力还是挺不错的,没有调试太久(2个小时) 最后代码量高达11K orz(大部分都是重复的线段树代码,以后可以考虑优化一下代码量) 题解: 首先就是要进行一次树链剖分, 然后线段树维护的内容是比较复杂的,核心是这样的 线段树上的一个结点维护以下信息 v[2] 阅读全文
posted @ 2017-05-18 13:18 Saurus 阅读(871) 评论(0) 推荐(0)
摘要:不妨考虑已知一个区间[l,r]的k=1、k=2....k=r-l+1这些数的答案ans(只是这一个区间,不包含子区间) 那么如果加入一个新的数字a[i](i = r+1) 则新区间[l, i]的答案为ans + (c+1)*a[i] + s ,c为[l,r]中小于等于a[i]的数的个数,s为大于它的 阅读全文
posted @ 2017-05-17 16:54 Saurus 阅读(332) 评论(0) 推荐(0)
摘要:比较坑的题目。 题意就是:给出一堆石子,一次操作可以变成它的约数个,也可以拿只拿一个,不能变成一个,最后拿的人输。 经过打表发现 几乎所有质数都是先手必败的,几乎所有合数都是先手必胜的 只有几个例外,就是17^n, 2^n这些。 不过继续推导可以发现16是先手必败的,因为2,4,8,15都是先手必胜 阅读全文
posted @ 2017-05-16 23:17 Saurus 阅读(169) 评论(0) 推荐(0)
摘要:按照插入数的大小排序, 然后依次进行dp。 用一个状态表示n个数是否被选了 10110 就是表示第1、3、4个位置都选了 那么如果此时这个数该填到5这个位置,那么必定会造成一个逆序(因为下一个数会填到2,下一个数必定比这个数大) 也就是转移的时候看插入位置前有多少个0,进行转移 写的时候有一些小技巧 阅读全文
posted @ 2017-05-16 23:08 Saurus 阅读(485) 评论(0) 推荐(0)
摘要:设dp[i][y]表示一个点在x[i],另一个点在y时最小要走的步数 那么有以下转移 对于y != x[i-1]的状态,可以证明,他们直接加|x[i] - x[i-1]|即可(如果有其他方案,不符合对dp的定义) 当y == x[i-1]时,它可以由其他所有状态转移过来, dp[i][x[i-1]] 阅读全文
posted @ 2017-05-06 14:38 Saurus 阅读(411) 评论(0) 推荐(0)