6324.Problem F. Grab The Tree 题目看着好难,但是题解说的很简单,写出来也很简单.能想出来就是简单的,想不出来就难(讲道理,就算是1+1的题目,看不出来就是难的啊). 和后面的东西一点关系都没有... 官方题解: 设sum为所有点权的异或和,A为先手得分,B为后手得分. 若sum=0,则A=B,故无论如何都是平局. 否则考虑sum二进制下最高的1所在那位,一定有奇数个点那一位为1.若先手拿走任意一个那一位为1的点,则B该位为0,故先手必胜. 时间复杂度O(n). 代码…
http://acm.hdu.edu.cn/showproblem.php?pid=6662 仿照 CC B - TREE 那道题的思路写的,差不多.也是要走路径. 像这两种必须走到叶子的路径感觉是必须从INF出发,使得它强制从子树转移过来.否则假如可以在中间节点中断的话,初始值就是0,转移的时候假如子树更不好就不会更新这个0. 与哪个求每个点去往的最远点的标号(同样远的求最小标号)类似. f[u]表示从u节点向下走向子树的最优值,这样必须dfs到叶子然后初始化叶子再返回. g[u]表示从u节点…
http://acm.hdu.edu.cn/showproblem.php?pid=6638 偷学一波潘哥的二维离散化和线段树维护最大子段和. 思路是枚举上下边界,但是不需要从左到右用最大子段和dp. 用O(n)建立线段树之后,下边界在往下增长的时候,每次只会单点修改某个点的值,影响这个点的祖先. 注意离散化减去的是数组的开头指针,而lowerbound减去的是另一个东西. #include<bits/stdc++.h> typedef long long ll; using namespac…
The path Time Limit: 2000ms Memory Limit: 65536KB This problem will be judged on HDU. Original ID: 538564-bit integer IO format: %I64d Java class name: Main Special Judge You have a connected directed graph.Let d(x) be the length of the shorte…
tree Time Limit: 8000ms Memory Limit: 262144KB This problem will be judged on HDU. Original ID: 539064-bit integer IO format: %I64d Java class name: Main Given a rooted tree(node 1 is the root) with n nodes. The ithnode has a positive value vi…