08 2017 档案
摘要:"C. Ilya And The Tree" 题意 给一棵树求每个点到根的路上允许修改一个为0,gcd的最大值。 题解 g是从根到当前点允许修改的最大gcd,gs为不修改的最大gcd。枚举当前点的因子,更新路径上每个因子出现次数,回溯时减去。并用这个因子更新答案。另外当前点修改为0时,还要用父节点的
阅读全文
摘要:"D. Vitya and Strange Lesson" 题意 数列里有n个数,m次操作,每次给x,让n个数都异或上x。并输出数列的mex值。 题解 01字典树保存每个节点下面有几个数,然后当前总异或的是sw,则sw为1的位的节点左右孩子交换(不用真的交换)。左孩子的值小于左边总节点数则mex在左
阅读全文
摘要:"多校10 1002 HDU 6172 Array Challenge" 题意 There’s an array that is generated by following rule.
阅读全文
摘要:"多校9 1001 hdu 6161 Big binary tree" 题意 有一个完全二叉树。编号i的点值是i,操作1是修改一个点的值为x,操作2是查询经过点u的所有路径的路径和最大值。10^5个点,10^8次操作。 题解 用map储存修改过的点的值val,和dp[i],表示i子树的最大路径和。
阅读全文
摘要:"多校10 1001 HDU 6171 Admiral" 题意 目标状态是第i行有i+1个i数字(i=0~5)共6行。给你初始状态,数字0可以交换上一行最近的两个和下一行最近的两个。求20步以内到目标状态的最少步数是多少。 题解 设计一个估价函数来剪枝,每个数最少需要|a[i][j] i|步回到自己
阅读全文
摘要:"题目链接多校8 1009 HDU 6158 The Designer" 题意 T( using namespace std; const double pi = acos( 1); const double R = 1; int t,r1,r2,n; double r0,d,a,b,r,s; do
阅读全文
摘要:"百度之星2017复赛1003 HDU 6146 Pokémon GO" 题意 两行n列,只能到相邻格子,可以斜着。求遍历的方案数。 题解 dp[i]从一个点出发遍历长度i最后回到这一列的方案数 dp2[i]从一个点出发遍历长度i的方案数 显然有。 dp2[i]就要
阅读全文
摘要:"百度之星2017复赛1005 HDU 6148 Valley Numer" 题意 不出现上升后直接下降数位的数,不超过n的有几个。前导零不算。 题解 dfs(当前数位的位置len,这位的数num,是否在上升up,是否有限制limit) limit不用存到状态里,因为limit为true时不可能访问
阅读全文
摘要:1009 I am your Father! (最小树形图 朱刘算法) "题目链接 HDU6141 I am your Father! " 求有向图最大生成树,要求n的父节点尽量小。 我们将所有wi变为 wi,这题就变成了有向图最小生成树的模板题。对于f(n)尽可能小的要求,可以令所有wi扩大100
阅读全文
摘要:1002 Build a tree(递归) "题目链接 HDU6121 Build a tree" 有一棵n个点的有根树,标号为0到n 1,i号点的父亲是号点,求所有子树大小的异或和。。 找出n所在
阅读全文
摘要:1001 Is Derek lying "题目链接 HDU6045 Is Derek lying?" 给出两个人选择题的回答,问得分分别为x和y是否可能。() 答案相同的部分,得分一定一样;答案不同的部分(dif个),是造成差距的地方
阅读全文
摘要:"B. Diverging Directions" 题意 给出一个n个点2n 2条边的有向图。n 1条指向远离根方向的边形成一棵树,还有n 1条从非根节点指向根节点的边。 q次操作,1修改第x条边权值为y,2询问,求u到v的最短距离。 题解 在前n 1条边上dfs得到dfs序。 用线段树维护从根到区
阅读全文