随笔分类 -  动态规划--------------------------

摘要:【题目】 "1920 空间统计学" 【题意】给定m维空间中的n个点坐标,满足每一维坐标大小都在[0,3]之间,现在对于[0,3 m]的每个数字x统计曼哈顿距离为x的有序点对数。$n \leq 2 10^5,m \leq 9$。 【算法】状压DP m范围很小,考虑设计状压DP的状态,可以想到设到达某个 阅读全文
posted @ 2018-05-24 20:05 ONION_CYC 阅读(500) 评论(0) 推荐(0)
摘要:【题目】 "1510 最小化序列" 【题意】给定长度为n的数组A和数字k,要求重排列数组从而最小化: $$ans=\sum_{i=1}^{n k}|A_i A_{i+k}|$$ 输出最小的ans,$n \leq 3 10^5,k \leq 5000, 10^9 \leq A_i \leq 10^9$ 阅读全文
posted @ 2018-05-24 07:33 ONION_CYC 阅读(409) 评论(0) 推荐(0)
摘要:【题目】 " 6396. 「THUPC2018」弗雷兹的玩具商店 / Toyshop" 【题意】给定一个长度为n的物品序列,每个物品有价值、不超过m的重量。要求支持以下三种操作:1.物品价值区间加减,2.物品重量区间加(超过m部分取模),3.区间物品求解容量为m的完全背包数组。$n \leq 2 1 阅读全文
posted @ 2018-05-23 16:19 ONION_CYC 阅读(322) 评论(0) 推荐(0)
摘要:【题目】 " 6395. 「THUPC2018」城市地铁规划 / City" 【题意】给定n个点要求构造一棵树,每个点的价值是一个关于点度的k次多项式,系数均为给定的$a_0,...a_k$,求最大价值。$n \leq 3000,k \leq 10$。 【算法】背包DP+Prufer序 首先每个点度 阅读全文
posted @ 2018-05-17 20:13 ONION_CYC 阅读(481) 评论(0) 推荐(0)
摘要:【题目】 "BZOJ 2111" 【题意】求有多少1~n的排列,满足$A_i A_{\frac{i}{2}}$,输出对p取模的结果。$n \leq 10^6,p \leq 10^9$,p是素数。 【算法】计数DP+排列组合+lucas 【题解】令i的父亲为i/2,转化为要求给一棵n个点的完全二叉树编 阅读全文
posted @ 2018-05-17 10:30 ONION_CYC 阅读(452) 评论(0) 推荐(0)
摘要:【题意】n位同学(其中一位是B神),m门必修课,每门必修课的分数是[1,Ui]。B神碾压了k位同学(所有课分数<=B神),且第x门课有rx-1位同学的分数高于B神,求满足条件的分数情况数。当有一位同学的一门必修课分数不同时视为两种情况不同。n,m<=100,Ui<=10^9。 【算法】计数DP+排列 阅读全文
posted @ 2018-04-14 11:52 ONION_CYC 阅读(453) 评论(0) 推荐(0)
摘要:【题意】给定m*n的整数矩阵,求经过所有点至多一次路径的最大数值和。n<=8,m<=100。 【算法】插头DP 【题解】最小表示法确实十分通用,处理简单路径问题只需要状态多加一位表示独立插头的数量0~2(即路径端点),转移的时候多考虑凭空产生独立插头和结尾为独立插头的情况即可。 可以跳格的情况直接转 阅读全文
posted @ 2018-04-13 11:27 ONION_CYC 阅读(455) 评论(0) 推荐(0)
摘要:【题意】给定n*m的地板,有一些障碍格,要求用L型的方块不重不漏填满的方案数。L型方块是从一个方格向任意两个相邻方向延伸的方块,不能不延伸。n*m<=100。 【算法】插头DP 【题解】状态0表示无插头,1表示能拐弯的插头,2表示不能拐弯的插头。(有插头,方块就必须必须延伸到该格),考虑转移即可。 阅读全文
posted @ 2018-04-13 08:58 ONION_CYC 阅读(270) 评论(0) 推荐(0)
摘要:【题目】1519. Formula 1 【题意】给定n*m个方格图,有一些障碍格,求非障碍格的哈密顿回路数量。n,m<=12。 【算法】插头DP 【题解】《基于连通性状态压缩的动态规划问题》 by CDQ(万恶之源T_T) 如果你想学最小表示法,当然首推kuangbinの博客。 基本思想是逐格推进, 阅读全文
posted @ 2018-04-12 22:00 ONION_CYC 阅读(478) 评论(0) 推荐(0)
摘要:【题意】n个点等距排列在长度为n-1的直线上,初始点1~k都有一辆公车,每辆公车都需要一些停靠点,每个点至多只能被一辆公车停靠,且每辆公车相邻两个停靠点的距离至多为p,所有公车最后会停在n-k+1~n。给定n,k,p,求满足要求的方案数%30031。n<=10^9,k<=p<=10。 【算法】状压D 阅读全文
posted @ 2018-04-10 22:12 ONION_CYC 阅读(304) 评论(0) 推荐(0)
摘要:【题目】F. Group Projects 【题意】给定k和n个数字ai,要求分成若干集合使得每个集合内部极差的总和不超过k的方案数。n<=200,m<=1000,1<=ai<=500。 【算法】动态规划 【题解】每个集合的最小值和最大值非常重要,将序列从小到大排序后,每个集合可以视为最小值到最大值 阅读全文
posted @ 2018-04-05 11:33 ONION_CYC 阅读(470) 评论(0) 推荐(0)
摘要:【题目】H. Ember and Storm's Tree Game 【题意】Zsnuoの博客 【算法】动态规划+排列组合 【题解】题目本身其实并不难,但是大量干扰因素让题目显得很神秘。 参考:Zsnuoの博客 一、首先Ember必胜(考虑n个点连成一条链),故合法的树一定满足先手必胜。当Storm 阅读全文
posted @ 2018-03-28 22:38 ONION_CYC 阅读(483) 评论(0) 推荐(0)
摘要:【题目】C. Maximum Element 【题意】给定n和k,定义一个排列是好的当且仅当存在一个位置i,满足对于所有的j=[1,i-1]&&[i+1,i+k]有a[i]>a[j],求长度为n的好的排列数。n<=10^6。 【算法】排列组合+动态规划 【题解】设D(n)表示长度为n且满足a[n]= 阅读全文
posted @ 2018-03-15 21:48 ONION_CYC 阅读(648) 评论(0) 推荐(0)
摘要:【题目】C. Bear and Company 【题意】给定大写字母字符串,交换相邻字符代价为1,求最小代价使得字符串不含"VK"子串。n<=75。 【算法】动态规划 【题解】关键在于表示状态,我们将确定下来的前若干个固定作为状态,后面新加的字符不会进入固定的前若干个。(为了方便,非'V''K'的字 阅读全文
posted @ 2018-03-14 08:07 ONION_CYC 阅读(442) 评论(0) 推荐(0)
摘要:【题意】给定n个禁忌字符串和字符集大小alphabet,保证所有字符在集合内。一个字符串的禁忌伤害定义为分割能匹配到最多的禁忌字符串数量(一个可以匹配多次),求由字符集构成的长度为Len的字符串的期望禁忌伤害。n<=5,1<=alphabet<=26,len<=10^9。 【算法】AC自动机+期望+ 阅读全文
posted @ 2018-03-13 10:37 ONION_CYC 阅读(236) 评论(0) 推荐(1)
摘要:【题目】#2124. 「HAOI2015」树上染色 【题意】给定n个点的带边权树,要求将k个点染成黑色,使得 [ 黑点的两两距离和+白点的两两距离和 ] 最大。n<=2000。 【算法】树上背包 【题解】设f[i][j]表示子树i中有j个黑点对答案的贡献(包括点 i 到父亲的边 p ),由于边p的贡 阅读全文
posted @ 2018-03-13 09:24 ONION_CYC 阅读(311) 评论(0) 推荐(0)
摘要:【题意】n个人,每个人有价值ai和代价bi和一个依赖对象ri<i,选择 i 时 ri 也必须选择(ri=0时不依赖),求选择k个人使得Σai/Σbi最大。n<=2500,ai,bi<=1e4。 【算法】01分数规划+树上背包 【题解】首先二分答案ans,根据01分数规划赋新的权值ci=ai-ans* 阅读全文
posted @ 2018-03-12 20:20 ONION_CYC 阅读(316) 评论(0) 推荐(0)
摘要:【题意】给定n个原串和m个禁忌串,要求用原串集合能拼出的不含禁忌串且长度为L的串的数量。(60%)n,m<=50,L<=100。(40%)原串长度为1或2,L<=10^18。 【算法】AC自动机+DP+矩阵快速幂 【题解】其实题意的数据范围不太清晰,反正开200个点就足够了。 因为要匹配禁忌串,所以 阅读全文
posted @ 2018-03-12 13:41 ONION_CYC 阅读(476) 评论(0) 推荐(1)
摘要:【题意】给定n盏灯的01状态,操作第 i 盏灯会将所有编号为 i 的约数的灯取反。每次随机操作一盏灯直至当前状态能够在k步内全灭为止(然后直接灭),求期望步数。n,k<=10^5。 【算法】期望DP 【题解】对于当前状态,编号最大的亮灯必须通过操作自身灭掉。 证明:假设通过操作编号更大的灯灭掉,那么 阅读全文
posted @ 2018-03-07 13:30 ONION_CYC 阅读(392) 评论(0) 推荐(0)
摘要:【题意】n种宝物,k关游戏,每关游戏给出一种宝物,可捡可不捡。每种宝物有一个价值(有负数)。每个宝物有前提宝物列表,必须在前面的关卡取得列表宝物才能捡起这个宝物,求期望收益。k<=100,n<=15。 【算法】期望DP+状压DP 【题解】主要需要记录的状态是前缀已有宝物,所以设f[i][S]表示前i 阅读全文
posted @ 2018-03-06 22:10 ONION_CYC 阅读(351) 评论(0) 推荐(1)