摘要: 有一个长度为n的排列a,其中有一些位置被替换成了−1。你需要尝试恢 复这个排列,将−1替换回数字。 求有多少种可行的替换方法,满足得到的是一个排列,且不存在ai = i的 位置。n ≤ 2000。 对于一个排列,可以用一个n*n的方阵来表示,第i行第j列如果被标记,则代表数字 i填在了第j个位置(a 阅读全文
posted @ 2019-02-25 20:25 Tartarus_li 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 题面: https://s3.amazonaws.com/codechef_shared/download/translated/LTIME10/mandarin/SHGAME.pdf 把n-1,m-1分别拆分成两段,于是相当于四堆石子的nim游戏 枚举把n分成x,n-x,把m分成y,m-y 开个桶 阅读全文
posted @ 2019-02-25 13:15 Tartarus_li 阅读(163) 评论(0) 推荐(0) 编辑
摘要: dp 首先暴力的dp式子: f[i]=min{f[j]+num(j+1,i)} 这样是n^2的 考虑优化: 代价是一段区间不同颜色的数量, 那么如果区间的颜色数量是相同的,更新长度更长的区间一定更优 那么可以用双向链表优化一下,当一个数在之前出现过的时候,就将之前出现过的位置删除掉 其实相当于离散化 阅读全文
posted @ 2019-02-25 10:22 Tartarus_li 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 学习博客:https://www.cnblogs.com/ECJTUACM-873284962/p/7643445.html 斯坦纳树: 给定k个点,要求将k个点联通,且权值和最小 f[i][s]表示以i为根,当前联通集合为s的最小代价 转移方程有两层: 第一层,通过连通状态的子集进行转移 f[i] 阅读全文
posted @ 2019-02-25 08:55 Tartarus_li 阅读(479) 评论(0) 推荐(0) 编辑