摘要:
最近又看到了当时困惑自己很久的约瑟夫,本质上来说有点类似于dp,推导出f(n)与f(n-1)的转移关系递推求解。 下面是最经典的约瑟夫问题,什么?链表模拟? 不存在的>_< https://vjudge.net/problem/51Nod-1073 首先,将n个人编号为: 0,1,2,3...... 阅读全文
posted @ 2017-08-09 22:22
*zzq
阅读(474)
评论(2)
推荐(0)
摘要:
这个算法其实是因为LIS有NlogN的作法,把LCS转化为了LIS来做。 对于序列A{},B{},我们可以记录下来B中的每个元素在A中出现的位置,按顺序保存在一个新序列当中, 如果有多个位置按倒序写,没有就不用写,然后对这个新序列求一个LIS就是两个序列的LCS长度。 为什么这样可行呢,我们可以这样 阅读全文
posted @ 2017-08-09 16:23
*zzq
阅读(1478)
评论(0)
推荐(0)
摘要:
http://codeforces.com/contest/814/problem/C 给定一个字符串s,长度小于1500,进行q次询问q<=20w,每次询问输入一个m和一个字符c,求将最多m个c代替原来字符串的某些位置,能得到的连续个c的最长长度。 很容易想到一个n*n*q的暴力做法,但是会超时, 阅读全文
posted @ 2017-08-09 14:52
*zzq
阅读(325)
评论(0)
推荐(0)
摘要:
uva 紫书例题,这个区间dp最容易错的应该是(S)这种匹配情况,如果不是题目中给了提示我就忽略了,只想着左右分割忘记了这种特殊的例子。 dp[i][j]=MIN{dp[i+1][j-1] | if(match(i,j) , dp[i][k]+dp[k+1][j] | i<=k<=j .}注意初始化 阅读全文
posted @ 2017-08-09 10:29
*zzq
阅读(214)
评论(0)
推荐(0)
摘要:
http://www.ifrog.cc/acm/problem/1028 很有趣的一道题,求从n个数里挑出不同的两个,使得他俩'|','&','^'后的值尽量大,求这个最大的结果。 求最大的异或值想到了trie树的一个经典操作,对于按位与,要两个位置都是1才会出现1,我们肯定要贪心操作,优先使高位为 阅读全文
posted @ 2017-08-09 09:15
*zzq
阅读(340)
评论(0)
推荐(0)

浙公网安备 33010602011771号