博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[POI2014]Rally
阅读量:7093 次
发布时间:2019-06-28

本文共 1652 字,大约阅读时间需要 5 分钟。

OJ题号:

BZOJ3832、洛谷3573

思路:

建立超级源汇$S$和$T$,DP求出分别以$S$和$T$为源点的最长路$diss$和$dist$。

对于每条边$i$,设定一个权值$w_i=diss_{i.from}+dist_{i.to}-1$。
表示原图中包含这条边的从$S$到$T$的最长路。
然后按照拓扑序删点$x$,用堆维护不包含$x$的最长路长度。
然而一次性不能把所有边放进去,不然会MLE一个点(因为这个调了一个晚上)。
应该在换$x$的时候,把老$x$的出边重新加入,并将新$x$的入边删去。
注意开的数组不能太多,能合并的信息尽量合并,(比如所有边正反边用一个数组存,取值的时候用异或),不然把堆修改以后还是会MLE。

1 #include
2 #include
3 #include
4 #include
5 #include
6 inline int getint() { 7 register char ch; 8 while(!isdigit(ch=getchar())); 9 register int x=ch^'0';10 while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0');11 return x;12 }13 const int inf=0x7fffffff;14 const int V=500002,E=2000000;15 struct Edge {16 int from,to;17 };18 Edge e[E];19 int w[E];20 int s,t;21 int n,m;22 std::vector
eids[V],eidt[V];23 int inds[V]={ 0},indt[V]={ 0};24 inline void add_edge(const int u,const int v,int *ind,std::vector
*eid,const int i) {25 eid[u].push_back(i);26 ind[v]++;27 }28 int diss[V]={ 0},dist[V]={ 0};29 std::queue
top;30 inline void Kahn(const int s,std::vector
*eid,int *dis,int *ind,const int op=0) {31 std::queue
q;32 q.push(s);33 while(!q.empty()) {34 int x=q.front();35 q.pop();36 if(op) top.push(x);37 for(register unsigned i=0;i
q;45 __gnu_pbds::priority_queue
::point_iterator p[E];46 int v,ans=inf;47 int cnt=0;48 inline void solve() {49 while(!top.empty()) {50 int x=top.front();51 top.pop();52 for(register unsigned i=0;i

 

转载于:https://www.cnblogs.com/skylee03/p/7421211.html

你可能感兴趣的文章
技术解析:IBM Connections功能扩展
查看>>
开源:好处与风险并存
查看>>
新版飞康CDP、NSS全新功能完全解读
查看>>
两大数据库安全产品比拼:IBM Guardium VS Imperva SecureSpher
查看>>
移动支付市场爆发 告别实体钱包时代有望?
查看>>
Kali如今用云GPU破解口令了
查看>>
亿点连接荣获“2017最佳创新出境产品奖”
查看>>
解析提高PHP执行效率的50个技巧
查看>>
思科发布针对勒索软件TeslaCrypt的解密工具
查看>>
精益求精的代码却被带漏洞组件毁于一旦
查看>>
IBM马修:利用数据分析实现企业创新
查看>>
卡巴斯基:高达98%的WannaCry 受害者运行的是 Windows 7系统
查看>>
PMC 赢得客户认可,获富士通颁发2015年度技术大奖
查看>>
BigBench on MaxCompute 基准测试套件简明安装与运行指南
查看>>
ABB机器人事业部产品架构总监Daniel ppling:面对机器人技术,我们应该关注什么?...
查看>>
《中国人工智能学会通讯》——1.3 若干研究结果
查看>>
IDC指出,NetApp在全闪存市场上位列第二
查看>>
ASLR保护机制被突破的攻击技术分析
查看>>
如何保证CAN网络中通讯的可靠性和节点数
查看>>
衡量云性能:我们需要一把不同于以往的标尺
查看>>