【bzoj 3832】: [Poi2014]Rally
来源:互联网 发布:sql数据库语法 编辑:程序博客网 时间:2024/04/29 03:10
http://www.lydsy.com/JudgeOnline/problem.php?id=3832
神一样的题&神一样的做法!
#include <cstdio>#include <cstring>#include <cstdlib>#include <iostream>#include <cmath>#include <algorithm>#include <set>using namespace std;#define rep(i,l,r) for(int i=(l),_=(r);i<=_;i++)#define per(i,r,l) for(int i=(r),_=(l);i>=_;i--)#define MS(arr,x) memset(arr,x,sizeof(arr))#define INE(i,u,head) for(int i=head[u];~i;i=e[i].next)#define LL long longinline const int read(){int r=0,k=1;char c=getchar();for(;c<'0'||c>'9';c=getchar())if(c=='-')k=-1;for(;c>='0'&&c<='9';c=getchar())r=r*10+c-'0';return k*r;}////////////////////////////////////////////////const int N=500010;const int M=1000010;int n,m;struct edge{int v,next;}e[M*2];int head[2][N],k;multiset<int>S;int ind[N];int q[N],l,r;int dis[2][N];////////////////////////////////////////////////void adde(int u,int v,int t){e[k]=(edge){v,head[t][u]};head[t][u]=k++;}inline void MAX(int &a,int b){if(a<b)a=b;}////////////////////////////////////////////////void input(){MS(head,-1); n=read(); m=read(); rep(i,1,m) { int u=read(),v=read(); ind[v]++; adde(u,v,0); adde(v,u,1); }}void solve(){int pos=0,mi=n,tmp;int SS=n+1,TT=n+2;rep(i,1,n) if(ind[i] == 0) q[r++]=i;while(l<r) INE(i,q[l++],head[0]) if(!--ind[e[i].v]) q[r++]=e[i].v;rep(t,0,n-1) INE(i,q[t],head[0]) MAX(dis[0][e[i].v],dis[0][q[t]]+1);per(t,n-1,0) INE(i,q[t],head[1]) MAX(dis[1][e[i].v],dis[1][q[t]]+1);rep(i,1,n) S.insert(dis[1][i]);rep(t,0,n-1){S.erase(S.find(dis[1][q[t]]));INE(i,q[t],head[1]) S.erase(S.find(dis[0][e[i].v]+dis[1][q[t]]+1));tmp=*S.rbegin();if(tmp < mi) mi=tmp,pos=q[t];INE(i,q[t],head[0]) S.insert(dis[0][q[t]]+dis[1][e[i].v]+1);S.insert(dis[0][q[t]]);}printf("%d %d\n",pos,mi);}////////////////////////////////////////////////int main(){ freopen("_.in","r",stdin); freopen("_.out","w",stdout); input(),solve(); return 0;}
0 0
- 【bzoj 3832】: [Poi2014]Rally
- bzoj 3832: [Poi2014]Rally
- BZOJ 3832 [Poi2014]Rally
- BZOJ 3832 Poi2014 Rally 拓扑排序+堆
- BZOJ 3832 [Poi2014] Rally 拓扑排序
- BZOJ 3832: [Poi2014]Rally拓扑排序
- bzoj 3832: [Poi2014]Rally(线段树+拓扑排序)
- bzoj 3832: [Poi2014]Rally 线段树+拓扑排序
- 【bzoj 3832】 [Poi2014] Rally (权值线段树+拓扑排序)
- BZOJ3832: [Poi2014]Rally
- BZOJ3832[Poi2014] Rally
- BZOJ3832: [Poi2014]Rally
- POI20143832: [Poi2014]Rally
- BZOJ3832: [Poi2014]Rally
- BZOJ3832: [Poi2014]Rally 拓扑排序
- 【bzoj3832】【poi2014】【Rally】【拓扑排序+线段树】
- 【POI2014】Rally(拓扑序+线段树)
- BZOJ 3524: [Poi2014]Couriers
- unity->汉诺塔
- 全栈工具
- string------修改
- SGU 131.Hardwood floor 状态压缩DP
- jQuery选择器总结(二)
- 【bzoj 3832】: [Poi2014]Rally
- 解决 iframe 在 iPad 上不能滚动的问题
- 【LCA】 HDOJ 5156 Harry and Christmas tree
- Android Studio学习博客
- 关于Android开源库与设计模式开源组建立
- html dom
- 新的项目管理工具-java
- ON_COMMAND/ON_MESSAGE/ON_NOTIFY区别与联系 【转】
- chtml/ChinaHtml标签能把节点内容保存为文件