hdu-----(4514)湫湫系列故事——设计风景线(树形DP+并查集)
湫湫系列故事——设计风景线
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 3105 Accepted Submission(s): 562
现在已经勘探确定了n个位置可以用来建设,在它们之间也勘探确定了m条可以设计的路线以及他们的长度。请问是否能够建成环形的风景线?如果不能,风景线最长能够达到多少?
其中,可以兴建的路线均是双向的,他们之间的长度均大于0。
接下去m行,每行3个数字u v w,分别代表这条线路的起点,终点和长度。
[Technical Specification]
1. n<=100000
2. m <= 1000000
3. 1<= u, v <= n
4. w <= 1000
1 #include<cstdio> 2 #include<cstring> 3 #include<cstdlib> 4 #include<iostream> 5 #include<vector> 6 #include<algorithm> 7 //#pragma comment(linker, "/STACK:36777216,36777216") 8 using namespace std; 9 const int maxn=100005; 10 int father[maxn]; 11 bool vis[maxn]; 12 int indeg[maxn]; 13 int ans,n,m; 14 struct no 15 { 16 int next; 17 int sum; 18 }; 19 20 vector<no>tree[maxn]; 21 22 void init(int n){ 23 ans=-1; 24 tree[0].clear(); 25 for(int i=1;i<=n;i++){ 26 father[i]=i; 27 tree[i].clear(); 28 } 29 memset(vis,0,sizeof(vis)); 30 memset(indeg,0,sizeof(int)*(n+1)); 31 } 32 33 int find(int a) 34 { 35 while(a!=father[a]) 36 a=father[a]; 37 return a; 38 } 39 void dfs(int pos,int res) 40 { 41 ans=max(ans,res); 42 int len=tree[pos].size(); 43 for(int i=0;i<len;i++) 44 { 45 if(vis[tree[pos][i].next]==0) 46 { 47 vis[tree[pos][i].next]=1; 48 dfs(tree[pos][i].next,res+tree[pos][i].sum); 49 vis[tree[pos][i].next]=0; 50 } 51 } 52 } 53 54 int main() 55 { 56 int i,x,y,aa,bb,cc; 57 bool flag; 58 while(scanf("%d%d",&n,&m)!=EOF) 59 { 60 init(n); 61 flag=0; 62 for(i=1;i<=m;i++){ 63 scanf("%d%d%d",&aa,&bb,&cc); 64 indeg[aa]++; 65 indeg[bb]++; 66 tree[aa].push_back((no){bb,cc}); //无向图 67 tree[bb].push_back((no){aa,cc}); 68 if(!flag){ 69 x=find(aa); 70 y=find(bb); 71 if(x==y) flag=1; 72 else father[y]=x; 73 } 74 } 75 if(flag)printf("YES\n"); 76 else{ 77 //寻找端点 78 for(int i=1;i<=n;i++) { 79 if(indeg[i]==1) 80 tree[0].push_back((no){i,0}); //将多源汇集到一点 81 } 82 vis[0]=1; 83 dfs(0,0); 84 printf("%d\n",ans); 85 } 86 } 87 return 0; 88 }
hdu-----(4514)湫湫系列故事——设计风景线(树形DP+并查集)相关推荐
- Hdu 4514 湫湫系列故事——设计风景线
湫湫系列故事--设计风景线 Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total ...
- 路径空间HDOJ 4514 - 湫湫系列故事——设计风景线 并查集+树型DP
最近研究路径空间,稍微总结一下,以后继续补充: 题意有没说楚清的...两点间最多一条路径.... 先用并查集检查无向图否是有环... 若干个无环的无向图就是一丛林了... 那么目题转化为在一棵树上找最 ...
- 刷题总结——湫湫系列故事——设计风景线(hdu4514 并差集判环+树的直径)
题目: 随着杭州西湖的知名度的进一步提升,园林规划专家湫湫希望设计出一条新的经典观光线路,根据老板马小腾的指示,新的风景线最好能建成环形,如果没有条件建成环形,那就建的越长越好. 现在已经勘探确 ...
- HDU 4514 湫湫系列故事——设计风景线 (并查集)
判断有没有环路,我个人认为还是并查集效率要高,而且复杂度要比dfs低,性价比很好 这道题的要求,第一判断是否有环,如果没有环,就输出最长的路径 我们可以想到一个无向图如果没有环的话,一定就是两种形态, ...
- HDU-4532 湫秋系列故事——安排座位 组合数学DP
题意:有来自n个专业的学生,每个专业分别有ai个同学,现在要将这些学生排成一行,使得相邻的两个学生来自不同的专业,问有多少种不同的安排方案. 分析:首先将所有专业的学生视作一样的,最后再乘以各自学生的 ...
- HDU 5575 Discover Water Tank(线段树+自底向上dp+并查集)
题意 给定n个挡板和m次回答,每次回答为x号水池的H+0.5高度是否有水,问这些回答互不矛盾的最大集合. 题解 设定状态dp[i][0-1]代表第i个区间枚举到当前回答后有水的最大不矛盾集合和没水的最 ...
- HDU 4539郑厂长系列故事――排兵布阵(状压DP)
HDU 4539 郑厂长系列故事――排兵布阵 基础的状压DP,首先记录先每一行可取的所哟状态(一行里互不冲突的大概160个状态), 直接套了一个4重循环居然没超时我就呵呵了 1 //#pragma ...
- HDU 4513 吉哥系列故事――完美队形II(Manacher)
题目链接:[kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher V - 吉哥系列故事――完美队形II 题意 吉哥又想出了一个新的完美队形游戏! 假设有n个人 ...
- HDU 4512 吉哥系列故事――完美队形I(最长公共上升子序列)
吉哥系列故事--完美队形I Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) To ...
最新文章
- python【力扣LeetCode算法题库】4- 寻找两个有序数组的中位数
- Revit二次开发示例:DeleteObject
- (转)Linux下MatlabCompilerRuntime的安装和使用
- vbs向指定的日志文件添加日志
- PCL Show Point Cloud 显示点云
- webpack打包教程
- java 图像渲染_对具有大量图像的视图执行本机渲染性能
- train_image_classifier.py:Cannot assign a device for operation CifarNet/conv1/Conv2D: node CifarNet
- 第十五节20181209
- fastreport(B)
- Java之拦截器与过滤器
- 快商通智能客服云平台入选中科院《互联网周刊》“智能营销榜”
- 仿小米官网首页 动态交互(HTML+css+jq)1.通栏以及logo部分
- WPS/WORD设置每一页显示50行代码或者是固定数量的行数
- ES High Level Rest Client 超时问题排查及解决
- 利用Python绘制TEC地图(详尽版)
- 拯救屏幕接口腐蚀严重的苹果A1989,不换屏给客户省了1K多
- 【houdini vex】Point Deform
- JavaScript中的Object常用方法
- [echart] 渐变内置生成器echarts.graphic.LinearGradient
热门文章
- 未来全球15大热门研究方向出炉!
- GE刚刚换帅,就向艾默生出售智能平台业务?刚刚换帅,GE又向艾默生出售智能平台业务,未来究竟何去何从?...
- 解密美国五角大楼人工智能中心
- 李飞飞:让机器有分辨事物的“眼睛”
- “机器人之夜”看猎豹跑得快还是五款机器人价格降得快?“鸿门宴”正式上演
- Java面试高Spring Boot+Sentinel+Nacos高并发已撸完
- 以太坊创始人V 神:普通人看见现在,天才看见未来
- P2924 [USACO08DEC]大栅栏Largest Fence
- 你不知道的z-index
- Ubuntu读取/root/.profile时发现错误:mesg:ttyname fa