P5020 货币系统
摘要:题目地址 基本思路: 由于要求两个货币系统"等价",换句话说,就是同时继承"优点"和缺点. 在此基础上,要使得货币量尽量小,就等于是在原货币系统中删去一些没用的货币(比如:3和6能组成9 12 15等). 注意点: coins[i](每种货币的价值)在预处理时需要排序. 需要判定价值是否超过coin
阅读全文
AW164 可达性统计
摘要:题目地址 注意点: 使用dfs的原因是后面的点会对之前点产生影响.
阅读全文
AW165 小猫爬山
摘要:题目地址 注意点: 搜索的基本思路是有效剪枝. 先排序一次再查找可以大大优化搜索效率. (167ms -> 26ms)
阅读全文
AW246 区间最大公约数
摘要:题目地址 易错点: 线段树查询时直接保留查询范围即可. 线段树递归结束后,返回gcd结果时应取绝对值. 本题线段树初始化时需要使用差分数组(更相减损术);同样地,在进行区间修改时[l~r]的修改会影响到线段树内[l~r+1]的值. 修改时应特判r>n的情况. #include<cstdio> #in
阅读全文
AW296 清理班次2(数据结构优化DP)
摘要:题目地址 状态设计: f[当前班次].(当前最小总佣金) 易错点: 线段树如果不动态开点的话数组可以开到4倍. 如果两个结构体功能类似可以考虑直接合并. 状态更新时,在获取到之间的最小值后还应当增加w[i](所索取的报酬).
阅读全文
AW297 赤壁之战(数据结构优化DP)
摘要:题目地址 基本思路: 权值树状数组. 状态设计: f[子序列长度][当前位数](严格递增子序列数量). 易错点: 初始化时需要设置f[0][0]=1. 每个独立的数字都只会影响到比它更大的数字. 预处理时的sort保证了整个算法的正确性.
阅读全文
AW288 休息时间
摘要:题目地址 状态设计: f[小时数(用i&1滚动)][睡觉时长][当前是否在睡觉]. 易错点: 可以使用滚动数组(i&1). 在更新正在睡觉的状态(f[][][1])前需要保证当前总睡觉时间大于1(起码入睡过). 在更新f[i&1][j][1]时,可以发现如果上个小时没有睡觉现在就不恢复体力,因此只有
阅读全文
AW366 看牛 (欧拉回路)
摘要:题目地址 简单分析: 由于每条边必须走两遍,等价于走完一条边后不删除反向边. 易错点: ans和stack数组应当开到MAXM.
阅读全文
AW298 围栏
摘要:题目地址 易错点: 需要掌握单调队列优化DP的基本方法. 题目直接给出的数据在初始化时经常需要进行排序处理.
阅读全文
AW282 石子合并
摘要:题目地址 易错点: 要清楚动态规划的基本概念和应对方式. 原题有环,处理环的话需要断开接一倍.
阅读全文
AW378 骑士放置
摘要:题目地址 易错点: 八倍开边,我真的没有开挂. 只有坐标不越界的点集才是好同志. 支持相互match这个一定要好评.
阅读全文
AW377 泥泞的区域
摘要:题目地址 易错点: 稳定加边请使用n*m. 点编号不重合就没必要双向设置匹配点. 写代码的时候请朴实一点.
阅读全文
AW375 蚂蚁
摘要:题目地址 易错点: 如果是double类型的数据,判断是否为零需要if(fabs(gap)<1e-10). 既然是double就不能使用常见的delta了,因为能更新delta不代表是最终结果. 如果要开double类型的INF可以直接用1e12. 中间值转换成double类型可以使用value*1
阅读全文
AW373 車的放置
摘要:题目地址 易错点: 可以想到,只有对角线能够放車. 通过"对角线"这一题设条件,可以联想到行与列的二分图匹配. 这种类型的二分图匹配不一定要用邻接表,在每一行的dfs过程中可以直接遍历所有列并尝试匹配.
阅读全文
AW372 棋盘覆盖
摘要:题目地址 易错点: 可以双向加边这个一定要赞一个. 在这种一次匹配则两个对象都被对方匹配上的题目中,应当在dfs成功时设置两个对象的match值为对方,即match[u]=v,match[v]=u.
阅读全文
P2746 [USACO5.3]校园网Network of Schools
摘要:题目地址 简述: 缩点后进行条件判定. 易错点: 首先,可以进行缩点. 子任务1:缩点后入度为零的强连通分量必须要有新软件. 子任务2:要求加边后形成一个强连通图。可以考虑到缩点后的DAG上每个点都必须同时具有入度和出度,就可以将没有入度的点的数量记为p,没有出度的点的数量记为q;由于没有出度的点可
阅读全文
P1129 [ZJOI2007]矩阵游戏
摘要:题目地址 易错点: 仔细思考可以发现,对角线上都有黑点等价于每一行都有起码一列与之对应。因此,对于每个黑点,将黑点所在行与所在列连边,进行二分图最大匹配即可.
阅读全文
P1006 传纸条
摘要:题目地址 易错点: 因为好感度最低为零且一定有答案,不需要额外处理好感度为零的位置. dp[i][x1][x2]=max(dp[i-1][x1][x2],...,dp[i-1][x1-1][x2-1]).
阅读全文
P1004 方格取数
摘要:题目地址 易错点: 注意样例的位置点数量与n的关系 .
阅读全文
AW274 移动服务
摘要:题目地址 易错点: 滚动数组的技巧:dp[i&1]=dp[(i-1)&1]+1. 直接dp(dp[i][x][y][z])的话复杂度开不下,可以考虑减少一维. 容易发现对于每一个任务,在这个任务被执行之前一定有一个人在上一个任务的位置. 因此可以枚举上一个任务其中两个人所在的位置,那么另一个人一定在
阅读全文