1023: [SHOI2008]cactus仙人掌图
2015-12-23 09:56
337 查看
好难不会做TAT。
只好Orz各路神犇的题解。
搞了一个小时,终于乱搞出来了。
大概就是Tarjan+树形DP+环上单调队列DP+乱七八糟的讨论。
脑子有点糊了。
只好Orz各路神犇的题解。
搞了一个小时,终于乱搞出来了。
大概就是Tarjan+树形DP+环上单调队列DP+乱七八糟的讨论。
脑子有点糊了。
#include<iostream> #include<cstdio> #include<cstring> using namespace std; const int N=50000+5; inline int read(){ int x=0;char ch; while(ch<'0'||ch>'9')ch=getchar(); while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x; } struct Edge{int to,next;}e[N*20]; int f ,ans,que[N<<1],cir[N<<1],head ,cnt,fa ,dep ,lowlink ,pre ,dfs_clock; void ins(int u,int v){ e[++cnt].to=v;e[cnt].next=head[u];head[u]=cnt; } void dp(int u,int root){ int n=dep[u]-dep[root]+1; for(int i=u;i!=root;i=fa[i]) cir[n--]=f[i]; cir =f[root]; n=dep[u]-dep[root]+1; for(int i=1;i<=n;i++)cir[i+n]=cir[i]; que[1]=1;int head=1,rear=1; for(int i=2;i<=n*2;i++){ while(head<=rear&&i-que[head]>n/2)head++; ans=max(ans,i-que[head]+cir[i]+cir[que[head]]); while(head<=rear&&cir[que[rear]]-que[rear]<=cir[i]-i)rear--; que[++rear]=i; } for(int i=2;i<=n;i++) f[root]=max(f[root],cir[i]+min(i-1,n-i+1)); } void tarjan(int u){ lowlink[u]=pre[u]=++dfs_clock; for(int i=head[u];i;i=e[i].next){ int v=e[i].to; if(v==fa[u])continue; if(!pre[v]){ fa[v]=u;dep[v]=dep[u]+1; tarjan(v); lowlink[u]=min(lowlink[u],lowlink[v]); }else lowlink[u]=min(lowlink[u],pre[v]); if(pre[u]<lowlink[v]){ ans=max(ans,f[u]+f[v]+1); f[u]=max(f[u],f[v]+1); } } for(int i=head[u];i;i=e[i].next){ int v=e[i].to; if(fa[v]!=u&&pre[u]<pre[v]) dp(v,u); } } int main(){ int n,m;n=read();m=read(); int k,u,v; while(m--){ k=read();u=read();k--; while(k--){ v=read();ins(u,v);ins(v,u); u=v; } } tarjan(1); printf("%d",ans); return 0; }
相关文章推荐
- Apache限制IP并发数和流量控制的方法
- Binary Tree Path Sum
- iOS UISearchController 的简单使用
- 40个Java多线程问题总结
- input替换为a标签,onclick事件不触发
- 通过ffmpeg把图片转换成视频
- 用于web类库代码的单元测试
- lua让我的师兄不敢拿8k的薪水
- 毕业了,异地恋只能分手吗?
- 高职组:1、猜年龄
- WEB前端开发人员须知的常见浏览器兼容问题及解决技巧
- OC学习篇之-----委托代理
- 根据STATUS信息对MySQL进行优化
- C语言内存与指针总结
- java字符串替换
- 设计模式之六大原则
- web.xml中的url映射的小知识
- 【转载】什么才是真正的休息
- 淘宝修改了宝贝描述/库存等之后是不是会影响搜索权重计算?
- MySQL数据类型和常用字段属性总结