zhxfl hdu 3534 树形dp,求最长路径有多少条,存在负权边

zhxfl hdu 3534 树形dp,求最长路径有多少条,存在负权边

ID:40580908

大小:16.86 KB

页数:3页

时间:2019-08-04

zhxfl hdu 3534 树形dp,求最长路径有多少条,存在负权边_第1页
zhxfl hdu 3534 树形dp,求最长路径有多少条,存在负权边_第2页
zhxfl hdu 3534 树形dp,求最长路径有多少条,存在负权边_第3页
资源描述:

《zhxfl hdu 3534 树形dp,求最长路径有多少条,存在负权边》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include#include#include#includeusingnamespacestd;#definemaxn10001#defineinf0x7ffffffintdis[maxn];structCoor{   intx,v;};vectorv[maxn];structNode{   intMax1,Max2,Max,num1,num2,num;}node[maxn];//node[x]中记录的是://x的子节点通过x的最长路径为Max,条数为num,//Max1是x的子节点到x的最长距离,num

2、1是条数//Max2是x的子节点到x的次长距离,num2是条数voiddfs(intx,intf){   inti;   for(i=0;i

3、//如果是叶子,num1记录为1   boolflag=1;   //找出距离最长的叶子   for(i=0;inode[x].Max1)       {           flag=0;           node[x].Max1=dis[u]+w;           node[x].num1=node[u].num1;           node[x].num=0;  

4、     }       elseif(dis[u]+w==node[x].Max1)       {           node[x].num+=node[x].num1*node[u].num1;//最长的叶子超过1个,可以算出经过x的最长路径有多少个           node[x].num1+=node[u].num1;       }   }   if(node[x].num==0)//如果最长路径的个数还没有统计出来,统计第二长的   {       for(i=0;i

5、       intw=v[x][i].v;           if(u==f)continue;           if(dis[u]+w==node[x].Max1)continue;           if(dis[u]+w>node[x].Max2)           {               node[x].Max2=dis[u]+w;               node[x].num2=node[u].num1;           }           elseif(dis[u]+w==node[x].Max2)           {             

6、  node[x].num2+=node[u].num1;           }       }       if(node[x].num2)//第二长的不是0       {           node[x].num=node[x].num1*node[x].num2;           node[x].Max=node[x].Max1+node[x].Max2;       }       else//第二长的为0       {           node[x].Max=node[x].Max1;           node[x].num=node[x].num1;      

7、 }   }   else   {       node[x].Max=node[x].Max1*2;   }   if(flag)node[x].num1=1;   dis[x]=node[x].Max1;}intmain(){   inti,j,n,x,y;   Coorcoor;   //freopen("a.txt","r",stdin);   while(scanf("%d",&n)!=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。