当前位置: 首页 > news >正文

祥符网站建设上海房地产网站官网

祥符网站建设,上海房地产网站官网,免费个人简历制作网站,上海法律网站建设题干#xff1a; 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一棵N的节点的树#xff0c;节点编号1~N#xff0c;并且1号节点是根节点。 小Hi会反复询问小Ho一个问题#xff1a;给定两个节点a和b#xff0c;有多少对节点c和d满足c d且c到d的…题干 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一棵N的节点的树节点编号1~N并且1号节点是根节点。   小Hi会反复询问小Ho一个问题给定两个节点a和b有多少对节点c和d满足c d且c到d的路径包含完整的a到b的路径 你能帮帮小Ho吗 输入 第一行包含两个数N和M依次是节点总数和问题总数。   第2~N行每行包含两个整数u和v代表u是v的父节点。   以下M行每行包含两个整数a和b代表一个问题。 对于30%的数据1 ≤ N, M ≤ 1000 对于100%的数据1 ≤ N, M ≤ 100000 输出 对于每个问题输出一个整数代表答案。 样例输入 7 2 1 2 1 3 2 4 2 5 3 6 3 7 2 3 2 4 样例输出 9 6解题报告 跑半遍LCA到他俩深度相同的时候停止。然后判断是否在同一条链上分别返回不同的答案就行了。注意在同一条链的时候不能用u和v的需要用u(深度大的)的和对应链上dep[v]1的那个点的。来看几发错误代码 错误代码1 #includecstdio #includeiostream #includealgorithm #includequeue #includemap #includevector #includeset #includestring #includecmath #includecstring #define ll long long #define pb push_back #define pm make_pair using namespace std; const int MAX 2e5 5; ll a[MAX]; int fa[MAX][33],dep[MAX],sum[MAX]; int n,m; vectorint vv[MAX]; void dfs(int cur,int rt) {dep[cur] dep[rt]1;sum[cur] 1;for(int i 1; i31; i) {fa[cur][i] fa[fa[cur][i-1]][i-1];}int sz vv[cur].size();for(int i 0; isz; i) {int v vv[cur][i];if(v rt) continue;dfs(v,cur);sum[cur] sum[v];} } int lca(int u,int v) {if(dep[u] dep[v]) swap(u,v);ll ans1 1LL*sum[u] * (n - sum[v] (sum[v]-sum[u]));ll ans2 1LL*sum[u] * sum[v];int dc dep[u] - dep[v];for(int i 0; i31; i) {if(dci 1) u fa[u][i];}if(u v) {return ans1;}else return ans2;for(int i 31; i0 u ! v ; i--) {if(fa[u][i] ! fa[v][i]) {u fa[u][i];v fa[v][i];}}int res fa[u][0];//u和v的最近公共祖先.} int main() {cinnm;for(int u,v,i 1; in-1; i) {scanf(%d%d,u,v);fa[v][0] u;vv[u].pb(v);vv[v].pb(u);}dfs(1,0);while(m--) {int u,v;cinuv;cout lca(u,v) endl;}return 0 ;}错误代码2 ll lca(int u,int v) {if(dep[u] dep[v]) swap(u,v);//ll ans1 (n - sum[v] (sum[v]-sum[u]));ll sumu sum[u] ,sumv sum[v];int dc dep[u] - dep[v];for(int i 31; i0; i--) {//if(dci 1) u fa[u][i];if(dep[u]-1 ! dep[v]) {u fa[u][i];} }if(fa[u][0] v) {//说明在一条链上 return sumu*(n-sum[u]);}else return sumu*sumv;for(int i 31; i0 u ! v ; i--) {if(fa[u][i] ! fa[v][i]) {u fa[u][i];v fa[v][i];}}int res fa[u][0];//u和v的最近公共祖先. } 错误代码3 ll lca(int u,int v) {if(dep[u] dep[v]) swap(u,v);//ll ans1 (n - sum[v] (sum[v]-sum[u]));ll sumu sum[u] ,sumv sum[v];int dc dep[u] - dep[v];for(int i 31; i0; i--) {//if(dci 1) u fa[u][i];if(dep[u] dep[v]) {u fa[u][i];} }if(fa[u][0] v) {//说明在一条链上 return sumu*(n-sum[u]);}else return sumu*sumv;for(int i 31; i0 u ! v ; i--) {if(fa[u][i] ! fa[v][i]) {u fa[u][i];v fa[v][i];}}int res fa[u][0];//u和v的最近公共祖先. } 错误代码4 ll lca(int u,int v) {if(dep[u] dep[v]) swap(u,v);ll sumu sum[u] ,sumv sum[v];for(int i 31; i0 dep[v] 1 dep[u]; i--) {if(dep[fa[u][i]] dep[v]) {u fa[u][i];} }if(fa[u][0] v) {//说明在一条链上 return sumu*(n-sum[u]);}else return sumu*sumv; } AC代码 #includecstdio #includeiostream #includealgorithm #includequeue #includemap #includevector #includeset #includestring #includecmath #includecstring #define ll long long #define pb push_back #define pm make_pair using namespace std; const int MAX 2e5 5; ll a[MAX]; int fa[MAX][33],dep[MAX],sum[MAX]; int n,m; vectorint vv[MAX]; void dfs(int cur,int rt) {dep[cur] dep[rt]1;sum[cur] 1;for(int i 1; i31; i) {fa[cur][i] fa[fa[cur][i-1]][i-1];}int sz vv[cur].size();for(int i 0; isz; i) {int v vv[cur][i];if(v rt) continue;dfs(v,cur);sum[cur] sum[v];} } ll lca(int u,int v) {if(dep[u] dep[v]) swap(u,v);ll sumu sum[u] ,sumv sum[v];for(int i 31; i0 dep[v] 1 dep[u]; i--) {if(dep[fa[u][i]] dep[v]) {u fa[u][i];} }if(fa[u][0] v) {//说明在一条链上 return sumu*(n-sum[u]);}else return sumu*sumv; } int main() {cinnm;for(int u,v,i 1; in-1; i) {scanf(%d%d,u,v);fa[v][0] u;vv[u].pb(v);vv[v].pb(u);}dfs(1,0);while(m--) {int u,v;scanf(%d%d,u,v);//cinuv;cout lca(u,v) endl;}return 0 ;}总结 另外注意一下对于一棵树dep值大的是在下面啊远离根别想反了。
http://www.ihoyoo.com/news/56071.html

相关文章:

  • 建网站需要服务器吗手机网站开发实例
  • 做汽车拆解视频网站福永响应式网站建设
  • 网站更新提示怎末做新乡哪里有做网站的
  • 织梦网站如何做seo四川网站建设电话咨询
  • 网站建设工作计划表关于军队建设网站
  • 开锁公司做网站留言墙 wordpress
  • 工信部网站用户名赵县住房和城乡建设局网站
  • 电商网站建设论文建站如何收费
  • 宁德东侨建设局网站网站建设 锐颖科技
  • 网站建设价格在哪济南兴田德润优惠吗天津注册公司优惠政策
  • 网站建设辅助无人高清影视在线观看
  • 全国做的最棒的网站软件开发专业有哪些
  • 怎么搭建Wordpress博客有没有专业收费做网站优化的
  • 国家建设协会官方网站图片搜索引擎
  • 戚墅堰常州做网站iis7配置多个网站
  • 国外的域名注册网站抚顺网站建设费用
  • 购物网站建设的选题意义2013网站建设方案
  • 照明网站建设怎么自己制作游戏
  • 内蒙古网站备案网易企业邮箱登录入口手机网页版
  • 手机能建网站不北京商城网站建设
  • 深圳网站上线方案哪些网站不扣流量
  • 网吧可以做网站吗国家建设厅官方网站
  • 英文网站接单做翻译做网站个网站要多少钱
  • 站群朝阳区搜索优化seosem
  • 专门做建筑设计图库的网站设计广东seo点击排名软件哪家好
  • 代价网站建设小江seo
  • 经营虚拟网站策划书全国城乡建设证件查询
  • 网站开发模宁波百度seo代理
  • 用wordpress设计html5重庆seo论
  • 比特币交易网站可以做空吗网站开发大概多少钱