BZOJ4727 [POI2017]Turysta
这题太神了还是去看刺儿神题解吧。
http://www.cnblogs.com/neighthorn/p/6538364.html
#include <cstdio>
#include <algorithm>
using std::min; const int N=;
int n,y,tt,ti,tp,t2,a[N][N],df[N],lo[N],st[N],v[N],bl[N],b[N][N],f[N],g[N],p[N],sz[N],h[N],nx[N]; void sol() {
int hd=h[],ta=h[],x;
for(int i=,j;i<=t2;i++) {
if(a[x=h[i]][hd]) {nx[x]=hd,hd=x; continue;}
for(j=hd;j!=ta&&a[nx[j]][x];j=nx[j]);
if(j^ta) nx[x]=nx[j],nx[j]=x; else nx[ta]=x,ta=x;
}
int md=hd,i,j=;
while(md^ta) {
if(a[x=nx[md]][hd]) {md=x; continue;}
for(i=hd;i!=md&&a[i][x];j=i,i=nx[i]);
if(i^md) nx[j]=x,nx[md]=hd,md=x,hd=i;
else {
for(i=nx[x];;i=nx[i]) for(j=hd;j^x;j=nx[j]) if(a[i][j]) goto lb;
lb:for(y=x;;y=nx[y]) if(y==i) break;
for(nx[md]=hd,hd=j,md=i;nx[j]^hd;j=nx[j]);
nx[j]=x;
}
}
nx[ta]=hd;
}
void tj(int x) {
df[x]=lo[x]=++ti,st[++tp]=x,v[x]=;
for(int i=;i<=n;i++) if(a[x][i]) {
if(!df[i]) tj(i),lo[x]=min(lo[x],lo[i]);
else if(v[i]) lo[x]=min(lo[x],df[i]);
}
if(df[x]==lo[x]) {p[++tt]=x,t2=; do v[y=st[tp--]]=,bl[y]=tt,h[++t2]=y,sz[tt]++; while(y^x); sol();}
} int dp(int x) {
if(f[x]) return f[x];
for(int i=;i<=tt;i++) if(b[x][i]&&f[x]<dp(i)) f[x]=dp(i),g[x]=i;
f[x]+=sz[x]; return f[x];
}
void sol2(int x) {
if(!x) return;
printf(" %d",x);
for(int i=nx[x];i^x;i=nx[i]) printf(" %d",i);
sol2(p[g[bl[x]]]);
} int main() {
scanf("%d",&n);
for(int i=;i<=n;i++) for(int j=;j<i;j++) {scanf("%d",&y); if(y) a[j][i]=; else a[i][j]=;}
for(int i=;i<=n;i++) if(!df[i]) tj(i);
for(int i=;i<=n;i++) for(int j=;j<=n;j++) if(bl[i]^bl[j]) b[bl[i]][bl[j]]|=a[i][j];
for(int i=;i<=tt;i++) dp(i);
for(int i=;i<=n;i++) printf("%d",f[bl[i]]),sol2(i),puts("");
return ;
}
BZOJ4727 [POI2017]Turysta的更多相关文章
- BZOJ4727 [POI2017]Turysta 【竞赛图哈密顿路径/回路】
题目链接 BZOJ4727 题解 前置芝士 1.竞赛图存在哈密顿路径 2.竞赛图存在哈密顿回路,当且仅当它是强联通的 所以我们将图缩点后,拓扑排序后一定是一条链,且之前的块内的点和之后块内的点的边一定 ...
- bzoj千题计划232:bzoj4727: [POI2017]Turysta
http://www.lydsy.com/JudgeOnline/problem.php?id=4727 竞赛图tarjan缩点后得到的拓扑图一定是一条链 因为竞赛图任意两点的前后顺序确定,只有一种拓 ...
- BZOJ 4727: [POI2017]Turysta
4727: [POI2017]Turysta Time Limit: 20 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 117 Solved ...
- BZOJ.4727.[POI2017]Turysta(哈密顿路径/回路 竞赛图)
题目链接 \(Description\) 给出一个n个点的有向图,任意两个点之间有且仅一条有向边.对于每个点v,求出从v出发的一条经过点数最多,且没有重复经过同一个点一次以上的简单路径. n<= ...
- BZOJ 4726: [POI2017]Sabota?
4726: [POI2017]Sabota? Time Limit: 20 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 301 Solved ...
- BZOJ4724 [POI2017]Podzielno
4724: [POI2017]Podzielno Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 77 Solved: 37[Submit][Stat ...
- BZOJ 4726: [POI2017]Sabota? 树形dp
4726: [POI2017]Sabota? 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4726 Description 某个公司有n ...
- BZOJ_4726_[POI2017]Sabota?_树形DP
BZOJ_4726_[POI2017]Sabota?_树形DP Description 某个公司有n个人, 上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他 下属 ...
- [POI2017]Sabotaż
[POI2017]Sabotaż 题目大意: 一棵\(n(n\le5\times10^5)\)个结点的树,初始时有一个未知的黑点,其余全为白点.对于一个点,如果其子树中黑点所占比例超过\(x\),则这 ...
随机推荐
- 深入浅出 SSL 管理配置实战
我们生活在一个信息大爆炸的时代,几乎每天都在和互联网打交道,购物.网银转账.支付宝付款.搜索信息.查看邮件.观看视频.微信聊天.上网冲浪.阅读新闻等,无不时时刻刻在和网络打交道.那如何保护网络安全就相 ...
- datable转xml
/// <summary> /// datatable转换xml /// </summary> /// <param name="xmlDS"> ...
- Mybatis框架入门
Mybaits框架 一.什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了googl ...
- Spring源码情操陶冶#task:scheduled-tasks解析器
承接前文Spring源码情操陶冶#task:executor解析器,在前文基础上解析我们常用的spring中的定时任务的节点配置.备注:此文建立在spring的4.2.3.RELEASE版本 附例 S ...
- python入门(1)python的前景
python入门(1)python的前景 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于 ...
- 关于ZK框架的onScroll事件的问题
由于我现在所在的公司用到的zk框架,遇到了一个需求frozen on top. 简单来说就是滚动超过范围后,希望有一块东西停留在滚动窗口的顶部. 一.zk框架 查看了zk的8.x版本,发现组件的支持的 ...
- centos系统php5.6版本安装gd扩展库
由于项目需要显示验证码登录系统,所以这里需要开启php的gd扩展 这边提供安装php5.6的yum方法扩展自选.# rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fe ...
- Spring学习(1)——快速入门
认识 Spring 框架 Spring 框架是 Java 应用最广的框架,它的成功来源于理念,而不是技术本身,它的理念包括 IoC (Inversion of Control,控制反转) 和 AOP( ...
- jacascript 函数参数与 arguments 对象
前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 调用函数时,实参和形参需要一一对应,但如果参数多了的话,会很苦恼: 我们可以用键值对(字面量对象)的方式传 ...
- CentOS 6.8下二级域名及目录的绑定
二级域名对应目录的绑定: 第一步: 开启mod_rewrite模块,默认是开启的,这里可以查下是否开启 终端输入:vim /etc/httpd/conf/httpd.conf 回车 查看188行:L ...