POJ 3342 Party at Hali-Bula ——(树型DP)
2024-09-05 03:00:18
一开始用pii保存dp类型,写的很长,还是WA了= =。。
然后参考了一下别人的博客,重新写了一发(似乎是岐哥的博客233)。
代码如下:
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <iostream>
#include <string>
#include <vector>
#include <map>
using namespace std;
const int N = + ; int n;
map<string,int> M;
vector<int> G[N];
int tot = ;
int dp[N][];
void dfs(int u)
{
dp[u][] = ;
dp[u][] = ;
for(int i=;i<G[u].size();i++)
{
int v = G[u][i];
dfs(v);
dp[u][] += max(dp[v][], dp[v][]);
dp[u][] += dp[v][];
}
} int main()
{
while(scanf("%d",&n) == && n)
{
for(int i=;i<=n;i++) G[i].clear();
tot = ;
M.clear(); string boss;
cin >> boss;
M[boss] = ++tot;
for(int i=;i<n;i++)
{
string a,b;
cin >> a >> b;
if(M[a] == ) M[a] = ++tot;
if(M[b] == ) M[b] = ++tot;
int u = M[a], v = M[b];
G[v].push_back(u);
} dfs();
printf("%d ",max(dp[][], dp[][]));
int flag = dp[][] != dp[][];
for(int i=;i<=n&&flag;i++)
{
if(dp[i][] < dp[i][]) continue;
for(int j=;j<G[i].size()&&flag;j++)
{
int v = G[i][j];
if(dp[v][] == dp[v][])
{
flag = ;
break;
}
}
}
puts(flag ? "Yes" : "No");
}
return ;
}
想说明的一点是,博客里面的判断是否有多种可能的if条件应当是dp[i][0] >= dp[i][1],虽然两者都能AC,但是我觉得这样更加妥当一些。
最新文章
- ASP.NET Core应用的错误处理[2]:DeveloperExceptionPageMiddleware中间件如何呈现&ldquo;开发者异常页面&rdquo;
- hive 表分区操作
- Java,double类型转换成String,String装换成double型
- ORACLE常用SQL优化hint语句
- [转]ionic 通过PouchDB + SQLite来实现app的本地存储(Local Storage)
- HTML兼容性设置
- JAVA应用apache httpclient探测http服务
- (转)Salesforce的440亿美金并购宣告企业软件市场进入3.0互联网化时代
- ubuntu 配置android开发环境
- asp.net微信开发第三篇----自定义会话管理
- linux命令积累(Ubuntu)
- Http学习之使用HttpURLConnection发送post和get请求(3)
- YOLOv3:训练自己的数据(附优化与问题总结)
- Centos7 出现Welcome to emergency mode!
- SQL 的约束
- ubuntu下nodejs源码安装
- IE9中ajax请求成功后返回值却是undefined
- Linux下Socket网络编程
- 拯救者14ISK添加ssd6记录
- SQL Server 获取满足条件的每个条件下的前N条数据
热门文章
- (八)springmvc之静态资源的访问。
- pyodbc报错pyodbc.InterfaceError
- tasklist、taskkill命令使用
- 媲美pandas的数据分析工具包Datatable
- 使用HTML CSS制作简易三角形和旗帜
- 阮一峰:jQuery官方基础教程笔记
- stm32 按键操作
- pymysql 1064, &#39;You have an error in your SQL syntax; check the manual that corresponds to
- ubuntu 14.04 登录 界面 root
- 搭建一个jumpserver跳板机