当前位置: 首页 > 编程日记 > 正文

bzoj 1040: [ZJOI2008]骑士 树形dp

题目链接

1040: [ZJOI2008]骑士

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 3054  Solved: 1162
[Submit][Status][Discuss]

Description

Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英。他们劫富济贫,惩恶扬善,受到社会各界的赞扬。最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争。战火绵延五百里,在和平环境中安逸了数百年的Z国又怎能抵挡的住Y国的军队。于是人们把所有的希望都寄托在了骑士团的身上,就像期待有一个真龙天子的降生,带领正义打败邪恶。骑士团是肯定具有打败邪恶势力的能力的,但是骑士们互相之间往往有一些矛盾。每个骑士都有且仅有一个自己最厌恶的骑士(当然不是他自己),他是绝对不会与自己最厌恶的人一同出征的。战火绵延,人民生灵涂炭,组织起一个骑士军团加入战斗刻不容缓!国王交给了你一个艰巨的任务,从所有的骑士中选出一个骑士军团,使得军团内没有矛盾的两人(不存在一个骑士与他最痛恨的人一同被选入骑士军团的情况),并且,使得这支骑士军团最具有战斗力。为了描述战斗力,我们将骑士按照1至N编号,给每名骑士一个战斗力的估计,一个军团的战斗力为所有骑士的战斗力总和。

Input

第一行包含一个正整数N,描述骑士团的人数。接下来N行,每行两个正整数,按顺序描述每一名骑士的战斗力和他最痛恨的骑士。

Output

应包含一行,包含一个整数,表示你所选出的骑士军团的战斗力。

Sample Input

3
10 2
20 3
30 1

Sample Output

30

HINT

对于100%的测试数据,满足N ≤ 1 000 000,每名骑士的战斗力都是不大于   1 000 000的正整数。

根据题目可以知道, 每一个联通块里有且只有一个环, 所以我们找到这个环然后从中间把它断开, 对断开的两个端点u1, u2, 分别dfs。
设dp[u][0]为不选u, dp[u][1]为选u,
那么答案就是max(dp[u1][0], dp[u2][0])。
注意有好多联通块, 一开始没想到狂wa不止。
#include <iostream>
#include <vector>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <map>
#include <set>
#include <string>
#include <queue>
#include <stack>
#include <bitset>
using namespace std;
#define pb(x) push_back(x)
#define ll long long
#define mk(x, y) make_pair(x, y)
#define lson l, m, rt<<1
#define mem(a) memset(a, 0, sizeof(a))
#define rson m+1, r, rt<<1|1
#define mem1(a) memset(a, -1, sizeof(a))
#define mem2(a) memset(a, 0x3f, sizeof(a))
#define rep(i, n, a) for(int i = a; i<n; i++)
#define fi first
#define se second
typedef pair<int, int> pll;
const double PI = acos(-1.0);
const double eps = 1e-8;
const int mod = 1e9+7;
const int inf = 1061109567;
const int dir[][2] = { {-1, 0}, {1, 0}, {0, -1}, {0, 1} };
const int maxn = 1e6+5;
int head[maxn*2], num, u1, u2, a[maxn], vis[maxn], E;
ll dp[maxn][2];
struct node
{int to, nextt;
}e[maxn*2];
void add(int u, int v) {e[num].to = v, e[num].nextt = head[u], head[u] = num++;
}
void init() {num = 0;mem1(head);
}
void get_circle(int u, int from) {vis[u] = 1;for(int i = head[u]; ~i; i = e[i].nextt) {int v = e[i].to;if((i^1) == from)continue;if(vis[v]) {u1 = u, u2 = v;E = i;continue ;}get_circle(v, i);}
}
void dfs(int u, int from) {dp[u][1] = a[u];dp[u][0] = 0;for(int i = head[u]; ~i; i = e[i].nextt) {int v = e[i].to;if((i^1) == from)continue;if(i == E || (i^1)==E)continue;dfs(v, i);dp[u][1] += dp[v][0];dp[u][0] += max(dp[v][1], dp[v][0]);}
}
int main()
{int n, x;cin>>n;init();for(int i = 1; i<=n; i++) {scanf("%d%d", &a[i], &x);add(i, x);add(x, i);}ll ans = 0;for(int i = 1; i<=n; i++) {if(vis[i])continue;get_circle(i, -1);dfs(u1, -1);ll tmp = dp[u1][0];dfs(u2, -1);tmp = max(tmp, dp[u2][0]);ans += tmp;}cout<<ans<<endl;return 0;
}

转载于:https://www.cnblogs.com/yohaha/p/5229775.html

相关文章:

2022-2028年中国钢桶行业市场研究及前瞻分析报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国钢桶行业市场行业相关概述、中国钢桶行业市场行业运行环境、分析了中国钢桶行业市场行业的…

在windows中创建一个影子用户

在windows中创建一个影子用户(看不到图请下载附件)我们可以在windows操作系统中建立一个影子用户&#xff0c;也就是它是实际存在的&#xff0c;但是不会在登录时或者用户组中显示&#xff0c;我们可以赋予影子用户管理员权限&#xff0c;可以在某些情况下管理员不可用时使用。…

PX4初级教程

链接&#xff1a;https://pan.baidu.com/s/1VIQcOQt-I5-evMx1jnV0ZQ 提取码&#xff1a;8niq

用Unity的视频广告创建2D动作游戏 Create Action 2D Game With Video Ads In Unity

MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz&#xff0c;2 Ch 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; |时长:27场讲座(4h 19m) |大小解压后:2.35 GB Unity 2D游戏开发终极指南 你会学到: 学习使用Unity Tile…

大话设计模式之简单的工厂模式

第一章&#xff1a;代码无错就是优-简单的工厂模式 先建立一个计算类Operation Operation.h文件 interface Operation : NSObjectproperty(nonatomic,assign)double numberA;property(nonatomic,assign)double numberB;end Operation.m文件 implementation Operationend 然后分…

Nginx学习3:反向代理实例

Nginx配置实例-反向代理1 目标 打开浏览器&#xff0c;在浏览器地址栏输入地址 www.123.com&#xff0c;跳转到 liunx 系统 tomcat 主页面中 准备工作 我们在官网下载好tomcat之后&#xff0c;直接将tomcat的压缩包放到相应的目录下编译解压&#xff0c;然后进入tomcat的bi…

2022-2028年中国钢铁智能制造产业竞争现状及发展趋势分析报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国钢铁智能制造行业市场行业相关概述、中国钢铁智能制造行业市场行业运行环境、分析了中国钢…

exchange 2010 search mailbox 的幕后强大功能

铃……….半夜中被一阵急促的手机铃声吵醒&#xff0c;年度服务客户打来电话需要进行邮件的排查和删除工作。问其原因&#xff0c;原来是组织中有人发了一封关于领导的不健康的邮件&#xff0c;并在企业内部进行了转发&#xff0c;领导要求立即找出此类邮件并进行删除。管理员深…

无人机官网介绍

参考官网&#xff1a;http://dev.px4.io/master/en/index.html 程序在运行期间可以通过在shell端输入执行top指令查看哪些模块正在被执行&#xff0c;当运行模块时可以通过输入<moudles name> start/stop来实现模块的使用与停止。 PX4软件架构&#xff1a; 更新速率&am…

Unity从头开始开发增强现实(AR)游戏学习教程

使用Unity 2021构建增强现实飞镖游戏 学习从头开始开发增强现实(AR)游戏&#xff0c;使用AR基金会&#xff0c;货币化&#xff0c;发布游戏玩商店 Build a Augmented Reality Dartboard Game with Unity 2021 你会学到什么 使用Unity2021从头开始学习增强现实。 构建一个AR飞镖…

IDEA的CPU占用率高问题解决方法

前言&#xff1a;这段时间发现 IDEA 的 CPU 占用率猛涨&#xff0c;时不时就飙升到百分之7、80&#xff0c;使得敲代码的体验感十分不佳&#xff0c;在经过一番查找之后终于解决了问题&#xff0c;在此记录一下 IDEA的CPU占用率高问题解决方法 问题定位 我们先定位一下为什么I…

消息队列之库存扣减

转载于:https://www.cnblogs.com/work-at-home-helloworld/p/5230894.html

2022-2028年中国钢铁冶炼行业市场研究及前瞻分析报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国钢铁冶炼行业市场行业相关概述、中国钢铁冶炼行业市场行业运行环境、分析了中国钢铁冶炼行…

Microsoft Build 2015

没本事去旧金山&#xff0c;只能默默的守在笔记本前看了…… 首先Azure在全球有19个数据中心了&#xff0c;终于超过亚马逊了&#xff0c;好样的&#xff01;过去12个月Azure有超过500个新功能上线&#xff0c;每月用户增长9万。Azure将会越来越成熟了&#xff0c;只可惜我现在…

开源飞控PX4简介

介绍&#xff1a; https://docs.px4.io/master/zh/flight_controller/pixhawk4.html无人机飞控基本装配参考&#xff1a; https://docs.px4.io/master/zh/assembly/下载地面站链接&#xff08;QGC地面站&#xff09;&#xff1a; http://qgroundcontrol.com/downloads/

Unity视觉效果图初学教程 Unity Visual Effects Graph for Beginners

面向初学者的Unity视觉效果图介绍 你会学到: 学生将学习使用视觉效果图来创建效果 MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz&#xff0c;2 Ch 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; |时长:39节课(4h 42m…

nonatomic, retain,weak,strong用法详解

strong weak strong与weak是由ARC新引入的对象变量属性ARC引入了新的对象的新生命周期限定&#xff0c;即零弱引用。如果零弱引用指向的对象被deallocated的话&#xff0c;零弱引用的对象会被自动设置为nil。property(strong) MyClass *myObject;相当于property(retain) MyClas…

“ Error:(1, 1) java: 非法字符: ‘\ufeff‘ ”错误的解决方法

前言&#xff1a;今天为了做作业&#xff0c;在 github 上面下载了个项目&#xff0c;然后在运行项目时发现报错&#xff0c;在此记录一下 “ Error:(1, 1) java: 非法字符: ‘\ufeff’ ”错误的解决方法 发生原因 这个项目从目录的结构可以很明显地看出是使用 Eclipse 开发的…

2022-2028年中国钢铁电商产业竞争现状及发展前景预测报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国钢铁电商行业市场行业相关概述、中国钢铁电商行业市场行业运行环境、分析了中国钢铁电商行…

java开发webservice的几种方式

为什么80%的码农都做不了架构师&#xff1f;>>> webservice的应用已经越来越广泛了&#xff0c;下面介绍几种在Java体系中开发webservice的方式&#xff0c;相当于做个记录。 1.Axis2 Axis是apache下一个开源的webservice开发组件&#xff0c;出现的算是比较早了&a…

改变gazebo背景颜色

修改这里:

【Unity教程】创建一个完整的驾驶游戏

专业游戏设计 你会学到什么 在unity HDRP创建一个完整的驾驶游戏 定制不同类型的汽车 将人工智能汽车和人工智能航路点系统添加到你的赛道上 添加汽车展厅菜单以解锁和购买新车 在Blender中设计自己的赛道 易于理解的编码使游戏工作 流派:电子学习| MP4 |视频:h264&#xff0c…

哈夫曼编译码器

前言&#xff1a;又到了学校一年一度的数据结构课设的日子&#xff0c;经不住学弟学妹热心地“询问”我数据结构课设的内容&#xff0c;我就在这里把我之前数据结构课设做的东西总结一下 哈夫曼编译码器 我课设选择的题目是哈夫曼编译码器&#xff0c;类似于我们平时用的解压缩…

Codeforces 629D Babaei and Birthday Cake(树状数组优化dp)

题意&#xff1a; 线段树做法 分析&#xff1a; 因为每次都是在当前位置的前缀区间查询最大值&#xff0c;所以可以直接用树状数组优化。比线段树快了12ms~ 代码&#xff1a; #include<cstdio> #include<cmath> #include<iostream> #include<algorithm>…

2022-2028年中国钢筘行业市场研究及前瞻分析报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国钢筘行业市场行业相关概述、中国钢筘行业市场行业运行环境、分析了中国钢筘行业市场行业的…

控制台绘制正切曲线

前面介绍了&#xff1a;控制台绘制正弦/余弦曲线 , 控制台绘制正弦曲线和余弦曲线同时显示 下面来看看正切曲线吧&#xff0c;其实也都差不多…… #include <stdio.h> #include <math.h>int main() {double y;int x,k;for(y10;y>-10;y--){katan(y)*7;if(k>0)…

PX4多机ros仿真报错

出现报错&#xff1a; 缺少配置文件&#xff0c;需要添加路径到文件中&#xff1b; 在根目录下打开终端输入&#xff1a; 出现下面一个界面&#xff1a;&#xff08;蓝色是我添加的&#xff09; 保存退出&#xff1b; 重新进行刚开始的操作&#xff1a; 使用默认的.launc…

Unity创建2D动作RPG游戏 Create Action 2D RPG Game in Unity

在Unity中创建动作2D RPG游戏 大小解压后&#xff1a;5.69G 时长10h 包含 Udemy Game Asset.unitypackage 源文件 1280X720 MP4 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; 你会学到什么 学习基础来提升C#&#xff0c; 为远程和特殊攻击…

Nginx学习4:负载均衡实例

Nginx配置实例-负载均衡 目标 在浏览器地址栏输入地址 http://192.168.126.131:8080/edu/a.html&#xff0c;负载均衡效果&#xff0c;平均分配到 8080 和 8081 端口中 准备工作 &#xff08;1&#xff09;准备两台 tomcat 服务器&#xff0c;一台 8080&#xff0c;一台 80…

2016030204 - git和github结合

1.下载和安装git客户端 参考&#xff1a;http://www.cnblogs.com/zhtzyh2012/p/5232291.html 2.github上创建项目 参考&#xff1a;http://www.cnblogs.com/zhtzyh2012/p/5233495.html 3.密钥相关信息设置 参考&#xff1a;http://www.cnblogs.com/zhtzyh2012/p/5233630.html 4…