Code:

#include<algorithm>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long ll;
const int maxn=1000000+233;
const int N=1000000+233;
int A[N],B[N];
ll G[N],F[N];
int head[maxn*2],nex[maxn*2],to[maxn*2],val[maxn],vis[maxn];
int cnt,num,root;
struct Circle{
int p[maxn];
void init(){
for(int i=1;i<maxn-12;++i)p[i]=i;
}
int find(int x){
if(p[x]==x)return x;
else return p[x]=find(p[x]);
}
int query(int x,int y){
int a=find(x);int b=find(y);
if(a!=b)p[a]=b;
if(a==b)return 1;
return 0;
}
}S;
void add_edge(int u,int v){
nex[++cnt]=head[u],to[cnt]=v,head[u]=cnt;
}
void dfs(int u,int fa,int c){
G[u]=val[u],F[u]=0,vis[u]=1;
for(int v=head[u];v;v=nex[v])
if(to[v]!=fa){
dfs(to[v],u,c);
G[u]+=F[to[v]];
F[u]+=max(F[to[v]],G[to[v]]);
}
}
int main(){
ll ans=0;
S.init();
int n;
scanf("%d",&n);
for(int i=1;i<=n;++i){
int a,b;scanf("%d%d",&a,&b);
val[i]=a;
int flag=S.query(i,b);
if(flag==0){
add_edge(i,b);
add_edge(b,i);
}
if(flag==1)A[++num]=b,B[num]=i;
}
for(int i=1;i<=num;++i){
int a=A[i],b=B[i];
ll sum1,sum2;
root=b;dfs(b,-1,a);sum1=F[b];
root=a;dfs(a,-1,b);sum2=F[a];
ans+=max(sum1,sum2);
}
for(int i=1;i<=n;++i)
if(!vis[i]){
dfs(i,-1,-2);
ans+=max(F[i],G[i]);
}
printf("%lld",ans);
return 0;
}

最新文章

  1. mysql的sql_mode模式
  2. 后端Apache获取前端Nginx反向代理的真实IP地址 (原创贴-转载请注明出处)
  3. html/css 钢琴黑白格布局
  4. ubuntu的目录结构
  5. Linux常用命令查看日志
  6. 配置使VirtualBox下的linux可以宿主机互访并上网
  7. Debian中编译内核
  8. 基于Golang的游戏服务器框架cellnet开发日记(二)
  9. IPv6-only 的兼容性解决方案
  10. xpages的comboBox能够手动输入
  11. 【调试基础】Part 4 保护模式
  12. [android] logcat简介
  13. [UE4]限制杀人信息的显示数量
  14. nodejs图像处理模块
  15. iscsi共享分区测试
  16. Visual Assist X 10.8.2042的Crack破解补丁. 2014.06.25 (General release.)
  17. 【PyQt5-Qt Designer】读取txt文件在打印
  18. iptables日志与limit参数
  19. 2016&quot;百度之星&quot; - 初赛(Astar Round2A) 1006 Gym Class 拓扑排序
  20. leetcode445

热门文章

  1. Book 动态规划
  2. Django框架详解之url
  3. linux查看前几条命令记录
  4. MongoDB入门 常用命令以及增删改查的简单操作
  5. 异常值(outlier)
  6. maven 测试写入JRE参数
  7. Vue入门教程(2)
  8. poi操作excel2007(读取、生成、编辑)
  9. 【Codeforces Round #482 (Div. 2) B】Treasure Hunt
  10. 洛谷 1063 dp 区间dp