题意给一个n个点的无向图,其中有一个隐藏点X,可以进行一组询问S来确定S是n个节点中的哪个点。S包括k个询问节点。询问返回的值也为k个值,每个值为X点到每个询问节点的最短路距离,求k最小为多少。提示1.对于k个节点来说,最优的结构肯定是选择所有的叶子节点2.对于一个节点来说,假如它连了m条链(包括单个叶子节点),可以只标记m-1条链的叶子节点即可3.满足1,2条件以后,可以尝试再去询问点,发现均无法全部检测到,原因是:假如去点m-2条链,剩下的两条链,相同深度部分对于其他的节点来说是无法判断的,他们是等价的方法可以树形DP,一下,或者从每个叶子节点开始搜索一下,这里主要将树形DP的方法:dp[
题意给一个n个点的无向图,其中有一个隐藏点X,可以进行一组询问S来确定S是n个节点中的哪个点。S包括k个询问节点。询问返回的值也为k个值,每个值为X点到每个询问节点的最短路距离,求k最小为多少。提示1.对于k个节点来说,最优的结构肯定是选择所有的叶子节点2.对于一个节点来说,假如它连了m条链(包括单个叶子节点),可以只标记m-1条链的叶子节点即可3.满足1,2条件以后,可以尝试再去询问点,发现均无法全部检测到,原因是:假如去点m-2条链,剩下的两条链,相同深度部分对于其他的节点来说是无法判断的,他们是等价的方法可以树形DP,一下,或者从每个叶子节点开始搜索一下,这里主要将树形DP的方法:dp[
题意1-n排列,构成一个圆;1-n每个点有个值0或者1,0代表点的度为偶数,1代表点的度为计数;询问能否构成一棵树,树的连边在圆内不会相交,在圆边上可以相交,可以则输出方案。提示1.首先考虑什么时候无解,显然,奇数点个数是偶数,并且>=22.由奇数点个数为偶数可以发现,它们可以连到同一个偶数点上(并非直接连)3.剩下的偶数点可以直接顺时针串联,直到连到最近的一个奇数点上4.相当于每个奇数点后面有一条偶数链,或者没有偶数链只有一个奇点(这都是一样的,因为链最后一个点都只剩下一个需要连的点),直接把链的最后一个点连在一起就好了代码#includeusingnamespacestd;chars[20
题意1-n排列,构成一个圆;1-n每个点有个值0或者1,0代表点的度为偶数,1代表点的度为计数;询问能否构成一棵树,树的连边在圆内不会相交,在圆边上可以相交,可以则输出方案。提示1.首先考虑什么时候无解,显然,奇数点个数是偶数,并且>=22.由奇数点个数为偶数可以发现,它们可以连到同一个偶数点上(并非直接连)3.剩下的偶数点可以直接顺时针串联,直到连到最近的一个奇数点上4.相当于每个奇数点后面有一条偶数链,或者没有偶数链只有一个奇点(这都是一样的,因为链最后一个点都只剩下一个需要连的点),直接把链的最后一个点连在一起就好了代码#includeusingnamespacestd;chars[20
题意给你个数p,n=2^p;有一棵树有n个节点,告诉你怎么连边;每个点有个权值,每条边也有个权值,权值需要自行分配,[1,2,3..n...2n-1],总共2n-1个权值;你需要选一个节点,使得他到所有其他边或者节点的简单路径的异或最大值最小。思路显然,给你个p,不直接给你n一定是有潜藏的东西的,分析一下,n=2^p,那么n的结构一定是1000000,1后面都是0,那可以推测出最终的答案一定是小于等于n的1.初始节点可以随便选的,但是它的值一定设为n2.处于一个点的连接点与边来说,他们的关系一定是x,x+n,这样他们的异或值一定是n,可以保证答案在0-n之间改变,注意x与x+n的位置设置3.如
题意给你个数p,n=2^p;有一棵树有n个节点,告诉你怎么连边;每个点有个权值,每条边也有个权值,权值需要自行分配,[1,2,3..n...2n-1],总共2n-1个权值;你需要选一个节点,使得他到所有其他边或者节点的简单路径的异或最大值最小。思路显然,给你个p,不直接给你n一定是有潜藏的东西的,分析一下,n=2^p,那么n的结构一定是1000000,1后面都是0,那可以推测出最终的答案一定是小于等于n的1.初始节点可以随便选的,但是它的值一定设为n2.处于一个点的连接点与边来说,他们的关系一定是x,x+n,这样他们的异或值一定是n,可以保证答案在0-n之间改变,注意x与x+n的位置设置3.如
题意给你n个节点的树,让你给每个节点进行赋值,并且赋的值需要为正整数;同时当一个节点的值等于所有邻居节点的值的和时,这个点为好点;求出一组赋值情况,满足树的好点个数最大化的同时,所有节点赋值的总和最小;思路1.显然无法存在两个好点相邻存在的情况(除非只有两个节点);2.对于坏点直接赋值为1即可;3.可以树形dp解决,f[x][0/1][0/1],第一维代表以x为根,第二维代表是否为好点,第三维代表是好点的个数/子树节点值的总和代码#includeusingnamespacestd;vectorg[200005];intf[200005][2][2];longlongans[200005];in
题意给你n个节点的树,让你给每个节点进行赋值,并且赋的值需要为正整数;同时当一个节点的值等于所有邻居节点的值的和时,这个点为好点;求出一组赋值情况,满足树的好点个数最大化的同时,所有节点赋值的总和最小;思路1.显然无法存在两个好点相邻存在的情况(除非只有两个节点);2.对于坏点直接赋值为1即可;3.可以树形dp解决,f[x][0/1][0/1],第一维代表以x为根,第二维代表是否为好点,第三维代表是好点的个数/子树节点值的总和代码#includeusingnamespacestd;vectorg[200005];intf[200005][2][2];longlongans[200005];in
treeLinuxtree命令用于以树状图列出目录的内容。执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。语法tree[-aACdDfFgilnNpqstux][-I][-P][目录...]参数说明:--a显示所有文件和目录。--A使用ASNI绘图字符显示树状图而非以ASCII字符组合。--C在文件和目录清单加上色彩,便于区分各种类型。--d显示目录名称而非内容。--D列出文件或目录的更改时间。--f在每个文件或目录之前,显示完整的相对路径名称。--F在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。--g列出文件或目
treeLinuxtree命令用于以树状图列出目录的内容。执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。语法tree[-aACdDfFgilnNpqstux][-I][-P][目录...]参数说明:--a显示所有文件和目录。--A使用ASNI绘图字符显示树状图而非以ASCII字符组合。--C在文件和目录清单加上色彩,便于区分各种类型。--d显示目录名称而非内容。--D列出文件或目录的更改时间。--f在每个文件或目录之前,显示完整的相对路径名称。--F在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。--g列出文件或目