
转移优化
文章平均质量分 73
转移优化
sz_165394732
这个作者很懒,什么都没留下…
展开
-
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 评论 -
洛谷 4517 [JSOI2018]防御网络
题目链接题解还是一样的套路,先考虑在树上,设f[u]f[u]f[u]为uuu子树内所有关键点都联通到uuu的距离和,转移显然。考虑在环上,需要考虑的就是环上有大于一个的子树有关键点。考虑如果已知一种方案有哪些点子树有关键点,可根据它在环上相邻的最大距离来计算贡献,故记g[i][j][k]g[i][j][k]g[i][j][k]为起点iii,终点jjj,中间最大空位为k的方案数、距离和,前缀和优...原创 2020-02-26 23:35:56 · 169 阅读 · 0 评论 -
DTOJ 4721. 雕像
题意一排 nnn 个村庄,试规划 KKK 个雕像的位置(不一定在村庄里),以最小化每个村庄到最近雕像的距离之和。对所有数据,K≤n≤3×105, 0=a1<a2<⋯<an≤109K\le n\le 3\times 10^5,\,0=a_1<a_2<\cdots<a_n\le 10^9K≤n≤3×105,0=a1<a2<⋯<an≤109...原创 2020-02-22 23:10:17 · 177 阅读 · 0 评论 -
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 评论 -
3967: 计数(count)
时间限制: 1 Sec 内存限制: 512 MB提交: 40 解决: 18[提交][状态][博客][加入收藏]题目描述既然是萌萌哒 visit_world 的比赛,那必然会有一道计数题啦!考虑一个 NN个节点的二叉树,它的节点被标上了 1∼N1∼N 的编号. 并且,编号为 ii的节点在二叉树的前序遍历中恰好是第ii个出现.我们定义AiAi 表示编号为ii的点在二叉树的中序遍历中出现...原创 2018-10-20 13:28:21 · 323 阅读 · 0 评论 -
(学军集训)树
题意给定一棵大小为 NNN,以 111 为根的有根树,每条边的初始权值是 cicici,单位修改代价是did_idi。将一条边 iii 的权值修改为 XXX(XXX 必须为整数,但可以为负) 的代价为 di×∣ci−X∣di × |ci − X|di×∣ci−X∣。你可以任意调整每条边的权值,使得从根节点到每个叶子的距离都相等,请你求出最小代价, 并输出一种方案。对于所有测试数据,保证 ...原创 2019-12-11 23:34:16 · 311 阅读 · 0 评论 -
DTOJ 1992. 购票(ticket)
题目描述输入格式输出格式样例样例输入【样例输入1】 731 2 20 0 31 5 10 100 52 4 10 10 102 9 1 100 103 5 20 100 104 4 20 0 10样例输出【样例输出1】 4015070149300150数据范围与提示题解先考虑t=0/1t=0/1t=0/1,列出DP式后发现是...原创 2020-02-08 23:32:15 · 180 阅读 · 0 评论 -
DTOJ 4718. 管理
题意一排 nnn 个物品,第 iii 个物品权值为 aia_iai,请将其分成恰好 kkk 非空段,且让同段中 aia_iai 相同的二元组 (i,j)(i,j)(i,j) 尽量少。亦即,假设在第 iii 段里权值为 jjj 物品有 c(i,j)c(i,j)c(i,j) 个,则请最小化 ∑i=1k∑j(c(i,j)2)\sum\limits_{i=1}^k\sum\limits_{j}\b...原创 2020-02-07 23:44:42 · 245 阅读 · 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 评论 -
CF536D. Tavas in Kansas
题目链接对于博弈问题考虑倒着DP,首先把s,ts,ts,t到每个点的最短路求出来离散化一下,设f[i][j][0/1]f[i][j][0/1]f[i][j][0/1]为sss取完距离它前iii近的点,ttt取完距离它前jjj近的点后,s/ts/ts/t先手,之后对于s/ts/ts/t的最优解,转移时枚举s/ts/ts/t取到哪,显然可以前缀minminmin优化,效率做到O(n2)O(n^{2}...原创 2020-02-01 23:39:25 · 166 阅读 · 0 评论 -
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 评论 -
AGC030D Inversion Sum
题目链接直接算每对i,ji,ji,j的贡献,发现每次操作只会对4n4n4n对的值有影响,其他都是∗2*2∗2,于是把方案数改为期望即可,效率O(n2+nq)O(n^{2}+nq)O(n2+nq)。代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll P=1e9+7,V=(P+1...原创 2020-01-27 22:33:18 · 212 阅读 · 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 评论