UVALive 5061 Lightning Energy Report --LCA】的更多相关文章

题意:给一棵树,每次给u到v的路径上所有点加上一个值,最后输出每个点的权值(初始为0) 解法:每次在u,v间加k时,只要让u,v点的权值加上k,u,v的LCA处减去k(因为LCA的子树中加了两个k),再在LCA的父亲(如果有的话)减k,免除对上面的影响.最后dfs一遍,ans[u] += ans[v] (v是u的所有儿子)即可. 这里LCA用RMQ求的. 代码: #include <iostream> #include <cstdio> #include <cstring&g…
题目大意:给出N个点.M条边.问这N个点形成的生成树的最大权值边-最小权值边的最小值 解题思路:先排序,然后按生成树的kruscal算法进行加边,再维护一个最小权值边 加边的时候要考虑一下加下去的边是否会形成环,假设形成环的话,就把环内的最小边去掉,然后再找出这棵新的生成树的最小边 等到生成树形成的时候,由于加入进去的新边的权值肯定是最大值的,所以仅仅要仅仅减去之前维护一个的最小值就能够了 #include <cstdio> #include <cstring> #include…
/*************************************************************************            Global Variables for EPANET Program                                                                                                VERSION:    2.00                 …
定义在TEXT.H文件中的字符常量都以小写开头,然后紧跟一个下划线,再接着就全是大写字母 /***************************************************** String Constants for EPANET Program                                                                                                 VERSION:    2.00  …
Salesforce作为一款CRM系统,个人觉得最重要的环境便是在于数据的展示和联动,而Salesforce也本身提供了相当强大的功能,Report在展示图表的方面十分强大,前段时间更是宣布以157亿美元收购tableau之后更是如虎添翼.虽然,其本身标准组件很强大,但是在实际项目上依旧捉襟见肘. 话不多说,这里提一提本人在展示图表的心历路程. 1. 什么是报告? 以最简单的形式,报告是满足您定义的条件的记录(如机会或帐户)的列表.但是报告不仅仅是简单的列表.要获取所需的数据,可以对记录进行过滤…
Salesforce作为一款CRM系统,个人觉得最重要的环境便是在于数据的展示和联动,而Salesforce也本身提供了相当强大的功能,Report在展示图表的方面十分强大,前段时间更是宣布以157亿美元收购tableau之后更是如虎添翼.虽然,其本身标准组件很强大,但是在实际项目上依旧捉襟见肘. 话不多说,这里提一提本人在展示图表的心历路程. 1. 什么是报告? 以最简单的形式,报告是满足您定义的条件的记录(如机会或帐户)的列表.但是报告不仅仅是简单的列表.要获取所需的数据,可以对记录进行过滤…
POJ 1330 Nearest Common Ancestors / UVALive 2525 Nearest Common Ancestors (最近公共祖先LCA) Description A rooted tree is a well-known data structure in computer science and engineering. An example is shown below: In the figure, each node is labeled with an…
题目大意: 给定所有点的权值都为0,给定一棵树以后,每次询问都要求给定两点 x , y 和一个权值w,要求x,y路径上所有点权值加上w,最后求出每一个节点的值 这里因为查询和点都特别多,所以希望能最后一次性更新节点的值 我们可以这么考虑,每次询问中找到x,y的最近公共祖先,那么我们将val[x] +=w , val[y]+=w , val[lca]-=w; 最后做dfs的时候,不断自底向上更新val值,让父亲加上所有儿子的val值,那么lca减掉了一个w,最后2端会加上两个w,最后还是相当于加了…
题意:一棵树q次查询,每次查询给三个不同的点,要求计算到这三个点的比其他两个距离都要小的点数 题解:很明显的lca,倍增的找中点,关键是两个点的中点很好找,但是三个点不好找,我刚开始还准备分类讨论,后来发现巨麻烦,其实可以用线段树来维护算a的答案其实就是a在b下的答案和a在c下的答案的交集,可以用线段树区间求和区间查询做,每次更新完之后复原就不用memset线段树了 //#pragma comment(linker, "/stack:200000000") //#pragma GCC…
题意:给定一棵带权树,Q次询问,每次询问路径上的中位数. 思路:中位数分边数奇偶考虑,当当边数为num=奇时,结果就算路径第num/2+1大,用主席树做即可... (做了几道比较难的主席树,都wa了...只有来刷刷水题,准备晚上的CF了) #include<bits/stdc++.h> using namespace std; ; int Laxt[maxn],Next[maxn],To[maxn],cost[maxn],cnt; ][],dep[maxn],rt[maxn],tot; str…