floyd
灾后重建
每个点有特定的点权(如修复时间和危险值),且询问还与这玩意有关系的时候,考虑floyd的实质算法
f[k][i][j] 代表经过k个点后i到j的最短路,只要把k按照特定的顺序排序即可
树状数组
主要是运用了树状数组前缀和的性质
有这么几道题目
三元组
考虑建一个树状数组,把大小离散化后,按照id枚举每一个点,查找id小数值小,id大数值小的,id大数值大的,然后每一个三元组就是id小数值大的id大数值小的和id打数值大id小数值大的
千秋
用树状数组的区间修改单点查询功能
二分出一个答案,假设这个是最终的答案,然后枚举每一个数字,如果当前数字满足条件(即比这个答案小),就花费一定的天数让这个值变大,并区间修改,如果发现把所有的花都编导满足条件后大于m天,返回false..剩下都懂!
嫌疑人
这道题也是
DP
千纱
这个是除去一个物品的背包
可以考虑正反两遍背包,然后最后踢出这个点,f[x-1][j] 和 f[x+1][y-j]