POJ1192最优连通子串----树形dp
中文题面,目的很明显,把相邻的两个点看成是两个点之间有一条边,就能当成树形dp来做了。
用一遍dfs可以找出最大的子树权值和。
#include<iostream>
#include<vector>
#include<queue>
#include<string.h>
#include<stdio.h>
#include<map>
using namespace std;
#define p pair<int,int>
map<p,int> mp,pd;
int a[][],ans=;
int dfs(int x,int y)
{
//cout<<x<<" "<<y<<endl;
int d;
if(mp[p(x,y)]==) d=;
else d=mp[p(x,y)];
//cout<<d<<" ";
pd[p(x,y)]=;
if(mp[p(x+,y)]==||pd[p(x+,y)]!=) ;
else d+=dfs(x+,y);
if(mp[p(x,y+)]==||pd[p(x,y+)]!=) ;
else d+=dfs(x,y+);
if(mp[p(x-,y)]==||pd[p(x-,y)]!=) ;
else d+=dfs(x-,y);
if(mp[p(x,y-)]==||pd[p(x,y-)]!=) ;
else d+=dfs(x,y-);
ans=max(ans,d);
//cout<<d<<endl;
if(d>) return d;
else return ;
}
int main()
{
int n,i,j,k,l,x,y,z;
cin>>n;
for(i=;i<n;i++)
{
cin>>x>>y>>z;
if(z==) z=;
mp[p(x,y)]=z; //用于标记该点是否存在,为了避免0的干扰,对权值为0的点特判
pd[p(x,y)]=;//标记这个点(x,y)是否遍历到过
}
dfs(x,y);
cout<<ans<<endl;
}
POJ1192最优连通子串----树形dp的更多相关文章
- poj1192 最优连通子集(树形dp)
题目链接:poj1192 最优连通子集 求一棵无向树的最大子树和..类似于求最大子段和的办法,树形dp. dp[i][0]:以i为根,不包括 i 结点的子树最大权 dp[i][1]:以i为根,包括 i ...
- ACM/ICPC 之 树形DP(POJ1192)
将某点看做根状态,邻接点看做子状态,由子状态向根状态转移. POJ1192-最优连通子集 题解:将每一个点分成两个状态进行保存,因此可以构造一个数组dp[i][2]. dp[i][0]:不包括该点权值 ...
- HDU4612(Warm up)2013多校2-图的边双连通问题(Tarjan算法+树形DP)
/** 题目大意: 给你一个无向连通图,问加上一条边后得到的图的最少的割边数; 算法思想: 图的边双连通Tarjan算法+树形DP; 即通过Tarjan算法对边双连通缩图,构成一棵树,然后用树形DP求 ...
- HDU 2242 考研路茫茫—空调教室 (边双连通+树形DP)
<题目链接> 题目大意: 给定一个连通图,每个点有点权,现在需要删除一条边,使得整张图分成两个连通块,问你删除这条边后,两联通块点权值和差值最小是多少. 解题分析: 删除一条边,使原连通图 ...
- hdu 4612 Warm up 双连通+树形dp思想
Warm up Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) Total S ...
- 4.9 省选模拟赛 圆圈游戏 树形dp set优化建图
由于圆不存在相交的关系 所以包容关系形成了树的形态 其实是一个森林 不过加一个0点 就变成了树. 考虑对于每个圆都求出最近的包容它的点 即他的父亲.然后树形dp即可.暴力建图n^2. const in ...
- 树形动态规划(树形DP)入门问题—初探 & 训练
树形DP入门 poj 2342 Anniversary party 先来个题入门一下~ 题意: 某公司要举办一次晚会,但是为了使得晚会的气氛更加活跃,每个参加晚会的人都不希望在晚会中见到他的直接上 ...
- 树形dp|无根树转有根树|2015年蓝桥杯生命之树
2015年蓝桥杯第十题--生命之树(无根树dfs) ①暴力解法:枚举子集(选点) + dfs判断连通性(题目要求连通)满足上面两个条件下找出最大值权值和 ②dfs无根树转有根树,递归找最优 先学习无根 ...
- POJ 1849 - Two - [DFS][树形DP]
Time Limit: 1000MS Memory Limit: 30000K Description The city consists of intersections and streets t ...
随机推荐
- Spring Boot 国际化及点击链接跳转国家语言
一.国际化 在SpringBoot中已经自动帮我们配置管理国际化资源的组件,所以我们只需要编写代码就可. @Bean @ConfigurationProperties(prefix = "s ...
- .NET使用gRPC
gRPC 简单介绍: grpc 是一个高性能.开源和通用的 RPC 框架,面向移动和 HTTP/2 设计.目前提供 C.Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc ...
- 设置js的ctx
<script type="text/javascript" src="${ctx}/js/dynamic.jsp"></script> ...
- [vue]vue基础复习项案例stepbystep
看本篇第二次复习内容即可. 还有一些 文档了这个如 https://www.cnblogs.com/iiiiiher/p/9508733.html https://www.cnblogs.com/ii ...
- JS获取页面复选框选中的值
function jqchk(){ //jquery获取复选框值 var chk_value =[]; $('input[class="sel"]:checked').each(f ...
- Cocos Creator 监听安卓屏幕下方返回键
addEscEvent = function(node){ cc.eventManager.addListener({ event: cc.EventListener.KEYBOARD, onKeyP ...
- mvc自定义分页(加页数的)(转)
1.引言 在MVC开发中我们经常会对数据进行分页的展示.通过分页我们可以从服务端获取指定的数据来进行展示.这样既节约了数据库查询的时间也节约了网络传输的数据量.在MVC开发中使用的比较多的应该是MVC ...
- 全志A33移植LCD驱动(ILI9806E)
0x00 环境说明: 所使用的开发板为锐尔威视的插针版A33_Vstar 屏幕是买的第三方的KD050FWFPA011-C009A,其中LCD驱动IC为ILI9806E,所使用的接口为RGB666 0 ...
- ros kinetic安装rbx1
1.首先安装一些依赖包 sudo apt-get install ros-kinetic-turtlebot-bringup \ ros-kinetic-turtlebot-create ros-ki ...
- Spring Boot默认的JSON解析框架设置
方案一:启动类继承WebMvcConfigurerAdapter,覆盖方法configureMessageConverters ... @SpringBootApplication public cl ...