
状态设计
文章平均质量分 72
状态设计
sz_165394732
这个作者很懒,什么都没留下…
展开
-
OTOJ 4863. 矩阵
题意有一个NNN行MMM列的矩阵,你可以选择一些位置涂黑,其它位置涂白。对一个矩阵,我们计算出一个长度为NNN的序列AAA,以及两个长度为MMM的序列BBB和CCC:令AiA_iAi为第iii行第一次出现黑色的位置的列号,如果第iii行全白,则为M+1M+1M+1;令BiB_iBi为第iii列第一次出现黑色的位置的行号,如果第iii列全白,则为N+1N+1N+1;令CiC_iCi为第iii列最后一次出现黑色的位置的行号,如果第iii列全白,则为000;请你计算,有多少种不同的{A,B,C}原创 2020-06-14 21:47:04 · 245 阅读 · 0 评论 -
DTOJ 4845. 三国学者
题意每周六的晚上,当大家都离去的时候,空荡荡的房间里便只剩下了HaSdnEHaSdnEHaSdnE孤寂的身影.他不知道自己该往何处去,又该以何事来度过这漫长的夜晚.苦思冥想中,他拿出了手机,准备呼叫他的小弟,相约一个秘密场所开启男人的浪漫,一起研究三国时期的名将、名器、名马.但是他的小弟非常多,而且每个小弟还有自己的小弟,如此便形成了一个树形的结构.同时,早已脱离旧制度的他明白,一个人小弟的小弟还是他自己的小弟.可他和自己所有的小弟们恰好都忘了充话费,以至于每个人都只剩下拨出一个电话的费用了.对于原创 2020-06-02 21:36:37 · 206 阅读 · 0 评论 -
DTOJ 4780. 病毒研究
题意病毒科学家陈博士正在带领着她的团队在研究病毒,她要研究如何降低病毒的活性。病毒的活性可以用一个整数来表示,但她不知道具体的活性是多少。她可以执行 m+1m+1m+1 种操作,对于前 mmm 种操作,第 iii 种操作为花费 viv_ivi 的代价使得病毒 的活性减少 wiw_iwi;第 m+1m+1m+1 种操作为查看当前病毒所处的状态,不需要花费任何代价。病毒一共有 nnn 种状态...原创 2020-04-19 00:00:45 · 200 阅读 · 0 评论 -
DTOJ 4469. 「NOI2019」序列
题意给定两个长度为 nnn 的正整数序列 {ai}\{a_i\}{ai} 与 {bi}\{b_i\}{bi},序列的下标为 1,2,…,n1, 2, \ldots , n1,2,…,n。现在你需要分别对两个序列各指定恰好 KKK 个下标,要求至少有 LLL 个下标在两个序列中都被指定,使得这 2K2K2K 个下标在序列中对应的元素的总和最大。形式化地说,你需要确定两个长度为 KKK 的序列...原创 2020-02-16 23:39:06 · 301 阅读 · 1 评论 -
DTOJ 4655. 「CSP-S 2019」划分
题意2048 年,第三十届 CSP 认证的考场上,作为选手的小明打开了第一题。这个题的样例有 nnn 组数据,数据从 1∼n1 \sim n1∼n 编号,iii 号数据的规模为 aia_iai。小明对该题设计出了一个暴力程序,对于一组规模为 uuu 的数据,该程序的运行时间为 u2u^2u2 。然而这个程序运行完一组规模为 uuu 的数据之后,它将在任何一组规模小于 uuu 的数据上运行错误...原创 2020-02-16 14:19:22 · 426 阅读 · 0 评论 -
#2297. 战争调度(war)
题意脸哥最近来到了一个神奇的王国,王国里的公民每个公民有两个下属或者没有下属,这种关系刚好组成一个 nnn 层的完全二叉树。公民 iii 的下属是 2i2i2i 和 2i+12i +12i+1。最下层的公民即叶子节点的公民是平民,平民没有下属,最上层的是国王,中间是各级贵族。现在这个王国爆发了战争,国王需要决定每一个平民是去种地以供应粮食还是参加战争,每一个贵族(包括国王自己)是去管理后勤还是...原创 2019-09-27 20:20:44 · 149 阅读 · 0 评论 -
DTOJ 4147. 「NOI2018」冒泡排序
题意最近,小 S 对冒泡排序产生了浓厚的兴趣。为了问题简单,小 S 只研究对 111 到 nnn 的排列的冒泡排序。下面是对冒泡排序的算法描述。输入:一个长度为 n 的排列 p[1...n]输出:p 排序后的结果。for i = 1 to n do for j = 1 to n - 1 do if(p[j] > p[j + 1]) 交换 p[j] 与 p[j + 1] ...原创 2020-02-07 23:59:37 · 175 阅读 · 0 评论 -
CF559E. Gerald and Path
题目链接首先把所有出现的点离散化一下。因为既要考虑区间的前后关系,又要使一个点的左右两个区间不能同时被选,故需要记录状态f[i][j]f[i][j]f[i][j]表示前iii个最右覆盖到jjj的最长覆盖长度。又因为这样在转移时限制较多比较麻烦,故把jjj改为考虑到前jjj个位置(后面不会在覆盖)而不一定覆盖。设当前点为(l,p,r)(l,p,r)(l,p,r),转移时,考虑这个点向左还是向右...原创 2020-02-05 00:06:28 · 282 阅读 · 0 评论 -
DTOJ 4700. Access
题意在一棵有根树中,边有两种:虚边和实边。一个点最多和一个儿子之间有实边。当我们执行 Access(x) 时,首先会把 x 到根这条路径上的所有点的实边全变成虚边,然后把这条路径上的所有边全变成实边。有一棵 nnn 个点、以 111 为根的有根树,一开始所有边都是虚边。你可以进行最多 kkk 次任意的 access 操作,求树有可能的形态数目。子任务一 (303030pts),树为一条链....原创 2020-02-03 23:26:56 · 261 阅读 · 0 评论 -
DTOJ 3132. 序列游戏(sequence)
题意有一个长度为nnn的序列,每次可以删掉一个连续的子序列,要求这个子序列相邻的两个数只能差111,且每个不在两端的数不能同时小于它的相邻两数,删掉一个长度lll的子序列会获得对应的分数v[l]v[l]v[l],求最大得分。n≤150n\le 150n≤150,相同的数不会超过777个。题解根据题意和数据范围,考虑区间DP。发现最终删掉的数在原序列中也是一些连续的子序列,且状态记为一个区间...原创 2020-02-02 23:34:20 · 364 阅读 · 0 评论 -
AGC022F - Checkers
题目链接最近做的最神仙的一道DP/计数题。原本的想法是A关于B对称,就新建一个点C,A向这个点连一条-1的边,B连2的边,这样两种方案不同当且仅当存在一个点到根路径的乘积不同,但这样要同时关心2,-1的个数,难以计数。发现乘积只跟-1的奇偶性有关,先考虑2的边,把-1的边缩起来,直接把A放到C上,这样就相当于B连向A,把A取反,于是问题变为计算这样的n个点的有标号的树的个数,两棵树不同当且仅...原创 2020-02-02 00:36:38 · 521 阅读 · 1 评论 -
CF708E. Student's Camp
题目链接容易想到暴力:f[i][l][r]f[i][l][r]f[i][l][r]为前i行四连通,最后一行剩下的区间为[l,r][l,r][l,r]的概率,前缀和优化转移可以做到O(n3)O(n^{3})O(n3)。发现瓶颈在于状态数,考虑利用左右独立的性质来优化。i这维无法避免,想要减少状态只能把单个改为前缀和,记f[i][l]f[i][l]f[i][l]为左端点为lll的所有DP值,g[i...原创 2020-02-01 00:16:28 · 246 阅读 · 0 评论 -
ARC096F - Sweet Alchemy
题目链接注意到父子关系对个数的限制比较麻烦,直接树形DP记录不下。利用父子关系做一个转化:选一个点时把它的子树也选了,这样问题转化成nnn个物品,每个物品有价值vvv和重量www,除了一号物品外每个物品不能选超过DDD个,求在XXX的容量内的最大选取价值总和。这是个经典的多重背包问题,但只有nnn和vvv的范围是505050,必须利用贪心把物品数减少(物品数1e91e91e9级别肯定做不了DP...原创 2020-01-30 23:16:43 · 379 阅读 · 0 评论 -
CF568E. Longest Increasing Subsequence
卡常垃圾!!!题目链接如果没有空位,那么是一个经典的求LIS的问题,直接用树状数组维护dp[i]表示以数字i为结尾的LIS即可。注意到比较不好做的地方在于m个数每个只能用一次,如果多记一维目前用到哪效率会炸。但既然要求严格上升,那么重复用一个数肯定没有用,所以完全可以忽略这个限制。于是遇到一个空位,直接用O(m)O(m)O(m)对目前所有dp值进行更新即可(树状数组因为是前缀max可做到O(...原创 2020-01-29 23:48:58 · 238 阅读 · 0 评论 -
AGC033D Complexity
题目链接如果直接DP设f[i][j][k][l]f[i][j][k][l]f[i][j][k][l]记录矩形,瓶颈在于状态数上。考虑减少状态数,其实也是一个比较套路的方法,发现答是logloglog级别的,于是把其中一维状态改为答案,DP值改为那维状态,转移时考虑横着还是竖着切,一边直接用上一个转,一边利用单调性转即可,效率O(n3logn)O(n^{3}logn)O(n3logn)。代码:...原创 2020-01-27 22:30:45 · 292 阅读 · 0 评论 -
(FJWC2020)DTOJ 4680. 红黑兔
题意上个月,PinkRabbit 在算法竞赛网站 Codeforces 一把打上了 ILGM。PinkRabbit 现在看到了一道简单题,但他忙于水知乎夺取 Codeforces 世界榜首,于是把问题交给了你:给定一个长度为 nnn 的只包含小写英文字母的字符串 sss,你需要找到一个最大的 kkk ,使得存在:1≤l1≤r1<l2≤r2<l3≤r3<⋯<lk≤r...原创 2020-01-19 23:45:39 · 534 阅读 · 0 评论