摘要:
一个简单的贪心, 我们只要考虑2个消防局设立的距离为5时是最好的, 因为利用最充分. 就dfs一遍, 再对根处理一下就可以了. 这道题应该是SGU某道题的简化版...这道题距离只有2, 树型dp应该也是可以的----------------------------------------------... 阅读全文
摘要:
在1, 11, 111……中选#include#includeusing namespace std;typedef long long ll;const int maxn = 509;const int maxm = 1000;const int MOD = 999911659;const int... 阅读全文
摘要:
先cdq分治, 然后要处理点对答案的贡献, 可以以询问点为中心分成4个区域, 然后去掉绝对值(4种情况讨论), 用BIT维护就行了.--------------------------------------------------------------#include#include#inclu... 阅读全文
摘要:
通过一次dfs求出dp(x)表示节点x考虑了x和x的子树都没成功充电的概率, dp(x) = (1-p[x])π(1 - (1-dp[son])*P(edge(x, son))。然后再dfs一次考虑节点x子树以外对节点x的贡献, 通过x的father算一算就可以了.O(N)-------------... 阅读全文
摘要:
虽然vfleaking好像想卡DFS...但我还是用DFS过了...路径上的石堆异或和=0就是必败, 否则就是必胜(nim游戏).这样就变成一个经典问题了, 用DFS序+BIT+LCA就可以在O((N+Q)logN)时间内AC-------------------------------------... 阅读全文
摘要:
把串倒过来插进trie上, 那么一个串的kpm串就是在以这个串最后一个为根的子树, 子树k大值的经典问题用dfs序+可持久化线段树就可以O(NlogN)解决------------------------------------------------------------------#inclu... 阅读全文
摘要:
离线然后就是维护加边的动态MST, Link cut tree秒掉..不过我写+调了好久...时间复杂度O(NlogN + MlogM)-----------------------------------------------------------------------#include#in... 阅读全文
摘要:
dp(i, j, 1)表示前i个, 有j对是不合法的, i和i-1是在一起的.dp(i, j, 0)表示前i个, 有j对是不合法的, i和i-1不在一起的.转移我们只需考虑是多了一对不合法的还是少了一对不合法的, 或者是不变, 考虑当前i和i-1,i-2的位置的影响就可以了.dp(i, j, 1) ... 阅读全文
摘要:
最小割...二分染色然后把颜色不同的点的源汇反过来..然后就可以做了.某个点(x,y):S->Id(x,y)(回报), Id(x,y)->T(代价), Id(i,j)&&Id(相邻节点)->newId(i,j)(+oo), newId(i,j)->T(回报)然后染色不同的点反过来就可以了.初始时答案... 阅读全文
摘要:
树形dp求出某个点的最长3条链a,b,c(a>=b>=c), 然后以这个点为交点的最优解一定是a+2b+c.好像还有一种做法是求出树的直径然后乱搞...---------------------------------------------------------------------#incl... 阅读全文