摘要: 满分做法: 按照结束时间从小到大排序,一个一个进行处理。遇到当前时间+处理时间 结束时间的建筑时,把这个建筑和之前修理过的建筑中处理时间最大的进行比较。 如果当前处理时间小于最大值,那么可以进行替换,使当前时间变小,否则就放弃此建筑。剩下的就是直接加进来就可以了。 cpp include inclu 阅读全文
posted @ 2019-10-14 20:55 lihan123 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 满分做法: 题目概述:连通块联通的最小代价。但本题要求选过的点不能再选,所以要选$2 (tot 1)$个点($tot$为连通块个数),这波选点就需要贪心了。 首先在每个连通块中选出最小权值的点,并把剩下的点全部加到队列里排序,再选出$tot 2$个点即可。判$impossible$就是剩下的够不够$ 阅读全文
posted @ 2019-10-14 19:37 lihan123 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 因为第$i$个数最终所在的位置,只与$i$之前所去掉的个有关与具体去掉哪些数无关,所以具有无后效性,可以DP。 方法一:$dp[i][j]$表示到i位置留j个数的匹配值。 当$a[i]=j$时,$dp[i][j]=max(dp[i][j],dp[i 1][j 1]+1)$; 当$a[i]\neq j 阅读全文
posted @ 2019-10-14 09:45 lihan123 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 满分做法: 用$dp[i][j]$表示到$i$位置分为$j$段的最大值,区间dp通常枚举断点,所以预处理$sum[i][j]$表示区间$[i,j]$的单词数。 本题还用了string类型的小技巧,推荐做一下。 cpp include include include include include i 阅读全文
posted @ 2019-10-14 08:15 lihan123 阅读(282) 评论(0) 推荐(0) 编辑