bzoj千题计划161:bzoj1589: [Usaco2008 Dec]Trick or Treat on the Farm 采集糖果
http://www.lydsy.com/JudgeOnline/problem.php?id=1589
tarjan缩环后拓扑排序上DP
#include<cstdio> #include<iostream> #include<algorithm>#define N 100001using namespace std;int to[N];int m; int bl[N],siz[N];int st[N],top; int id,dfn[N],low[N]; bool vis[N];int FRONT[N],TO[N],NXT[N],TOT; int in[N];int dp[N];void read(int &x) {x=0; char c=getchar();while(!isdigit(c)) c=getchar();while(isdigit(c)) { x=x*10+c-'0'; c=getchar(); } }void tarjan(int x) {dfn[x]=low[x]=++id;vis[x]=true;st[++top]=x;if(!dfn[to[x]]){tarjan(to[x]);low[x]=min(low[x],low[to[x]]);}else if(vis[to[x]]) low[x]=min(low[x],dfn[to[x]]);if(dfn[x]==low[x]){++m;while(st[top]!=x) {vis[st[top]]=false;bl[st[top]]=m;siz[m]++;top--;}vis[x]=false;bl[x]=m;siz[m]++;top--;} }void add(int u,int v) {TO[++TOT]=v; NXT[TOT]=FRONT[u]; FRONT[u]=TOT;in[v]++; }void topsort() {top=0;for(int i=1;i<=m;++i){if(!in[i]) st[++top]=i;dp[i]=siz[i];} int now,t;while(top){now=st[top--];for(int i=FRONT[now];i;i=NXT[i]){t=TO[i];dp[t]+=dp[now];in[t]--;if(!in[t]) st[++top]=t;}} }int main() {int n;read(n);for(int i=1;i<=n;++i) read(to[i]);for(int i=1;i<=n;++i)if(!dfn[i]) tarjan(i);for(int i=1;i<=n;++i)if(bl[i]!=bl[to[i]]) add(bl[to[i]],bl[i]);topsort();for(int i=1;i<=n;++i) cout<<dp[bl[i]]<<'\n'; }
转载于:https://www.cnblogs.com/TheRoadToTheGold/p/8142648.html
bzoj千题计划161:bzoj1589: [Usaco2008 Dec]Trick or Treat on the Farm 采集糖果相关推荐
- BZOJ 2150. 部落战争(最小路径覆盖问题)【BZOJ千题计划】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 刷题就图一乐 题目链接 https://hydro.ac/d/bzoj/p/2150 是 hydro ...
- BZOJ 2151 种树(可反悔贪心,链表)【BZOJ千题计划】就图一乐
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2151 是 hydro 的 BZOJ ...
- BZOJ 1799 [Ahoi2009] self 同类分布(数位DP)【BZOJ千题计划(quexin】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/1799(样例时限设置有问题,应该为 2 ...
- bzoj千题计划143:bzoj1935: [Shoi2007]Tree 园丁的烦恼
http://www.lydsy.com/JudgeOnline/problem.php?id=1935 二维偏序问题 排序x,离散化树状数组维护y #include<cstdio> #i ...
- bzoj千题计划207:bzoj1879: [Sdoi2009]Bill的挑战
http://www.lydsy.com/JudgeOnline/problem.php?id=1879 f[i][j] 表示匹配了i个字符,匹配字符串的状态为j的方案数 枚举下一个字符是什么 计算加 ...
- bzoj千题计划203:bzoj3994: [SDOI2015]约数个数和
http://www.lydsy.com/JudgeOnline/problem.php?id=3994 设d(x)为x的约数个数,给定N.M,求 用到的一个结论: 证明: 枚举n的约数i,枚举m的约 ...
- bzoj千题计划280:bzoj4592: [Shoi2015]脑洞治疗仪
http://www.lydsy.com/JudgeOnline/problem.php?id=4592 注意操作1 先挖再补,就是补的范围可以包含挖的范围 SHOI2015 的题 略水啊(逃) #i ...
- bzoj千题计划201:bzoj1820: [JSOI2010]Express Service 快递服务
http://www.lydsy.com/JudgeOnline/problem.php?id=1820 很容易想到dp[i][a][b][c] 到第i个收件地点,三个司机分别在a,b,c 收件地点的 ...
- bzoj千题计划303:bzoj4827: [Hnoi2017]礼物
https://www.lydsy.com/JudgeOnline/problem.php?id=4827 式子化简一下,发现最后只跟 Σ xi*yi 有关 第二个序列反转,就可以用FFT优化 注意: ...
最新文章
- KD树是什么? 为什么要用KD树? KD树怎么用? KD树和KNN的关联是什么?
- 如何设置采购收货直接转到供应商库存?
- Oracle错误 1053: 该服务没有响应启动或控制请求
- 机器学习之数学基础(一)~maximum likelihood
- Fabric 学习笔记-架构初探
- 广州技术沙龙第 4 期报名开始!
- 睡前必读 | 如何系统性地学习分布式系统?
- Hbase的WebUI中的RegionServers不显示集群机器域名
- [XSY4197] Snow(树形DP)
- WPS Excel VB宏简单编程
- 2022-2027年中国电容器行业市场全景评估及发展战略规划报告
- TPC,TPCC,TPMC(数据库性能衡量指标)
- php-fpm 启动失败,php-fpm自启动失败问题排查
- 织梦高端婚纱摄影网站织梦模板(带手机端
- SOLIDWORKS中如何使用配置创建系列零件
- 集成声网(Agora)SDK踩坑集锦系列
- Modernizr的介绍和使用
- 学生宿舍管理项目开发计划书_1学生信息管理系统项目开发计划书
- 神经网络CNN(学习总结)
- 如何在Android手机上退出Google帐号
热门文章
- 区块链学堂(4):以太坊基本概念及工具Geth、Browser-solidity、Mist
- Double Free浅析
- mach-o格式分析
- android电视打印信息解析,液晶电视获取打印信息的方法与操作
- win32按钮按下不弹起_荣耀亲选智能恒温电热水壶,宝爸冲奶粉再也不做难了
- 禁用cookie后怎么使用session_Session 和 Cookie 的区别?你在项目中哪些地方使用了?...
- google reader很有用的技巧 F+F11
- [USACO08JAN]跑步Running
- 线段树的数组大小下限及证明
- java环境变量修改不了_win10系统安装了jdk,修改环境变量配置不生效的解决方法...