传球接力
来源:互联网 发布:手机耗电检测软件 编辑:程序博客网 时间:2024/04/30 11:35
给某位非常在意访问量的软妹同学打个广告
非常巧妙的一道题呢
上面是某同学写的题解
还是挺详细的
总之就是
删掉的同时加上长度
然后最后只会剩下环
然后再加起来
删掉进入这个点同时也在环上的边
#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>#include<cmath>#include<queue>#include<vector>#include<climits>#include<string>#include<cstdlib>#include<ctime>#define LL long long#define MOD 1000000007using namespace std;int n,i,j,a[500005],d[500005],rd[500005],vis[500005],cyc[500005],len,sum;int unrd[500005],rt,l,maxn[500005],k;LL ans;int main(){ scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d%d",&a[i],&d[i]); rd[a[i]]++; } for(i=1;i<=n;i++) if(!rd[i]) unrd[++rt]=i; while(l<rt) { k=unrd[++l]; maxn[a[k]]=max(maxn[a[k]],maxn[k]+d[k]); if(--rd[a[k]]==0) unrd[++rt]=a[k]; } for(i=1;i<=n;i++) if(rd[i]&&!vis[i]) { k=i; len=0; sum=0; do { vis[k]=1; cyc[++len]=k; sum+=d[k]; k=a[k]; }while(k!=i); for(j=1;j<=len;j++) ans=max(ans,(LL)sum-d[cyc[j]]+maxn[a[cyc[j]]]); } printf("%lld",ans); return 0;}
阅读全文
0 0
- 传球接力
- 传球接力
- 传球接力
- 接力
- 幸福接力幸福接力
- 幸福接力
- 古诗接力
- 古诗接力
- 古诗接力
- 古诗接力
- 奶牛接力
- 测试接力
- 接力break
- 传球游戏
- 传球游戏
- 传球游戏
- 传球游戏
- 传球问题
- JavaScript中的闭包详解
- muduo源码学习(14)-网络库类库概述
- HTTP协议总结
- JavaIO怎么调用WindowsAPI的——从Native层剖析JavaIO文件读写
- 【hdu 1068】Girls and Boys
- 传球接力
- java类加载器
- iOS 加载h5的内容方法
- Atitit 避税之道 如何降低企业与项目组成本 attilax总结
- Python基础02 变量类型
- 二叉树的深度
- java toString()
- Java与Python对比学习2
- 【深入PHP 面向对象】读书笔记(三)