P2883 [USACO07MAR]牛交通Cow Traffic

对于每一条边$(u,v)$

设入度为0的点到$u$有$f[u]$种走法

点$n$到$v$(通过反向边)有$f2[v]$种走法

显然经过这条边的方案数为$f[u]*f2[v]$

两边递推处理$f$数组,然后枚举每条边取个$max$。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
void swap(int &a,int &b){a^=b^=a^=b;}
int max(int &a,int &b){return a>b?a:b;}
#define N 5005
#define M 50002
int n,m,f[N],f2[N],in[N],in2[N],ans;
int cnt,hd[N],nxt[M],ed[N],poi[M];
int cnt2,hd2[N],nxt2[M],ed2[N],poi2[M];
queue <int> h;
void adde(int x,int y){
nxt[ed[x]]=++cnt; hd[x]=hd[x]?hd[x]:cnt;
ed[x]=cnt; poi[cnt]=y; ++in[y];
}
void adde2(int x,int y){
nxt2[ed2[x]]=++cnt2; hd2[x]=hd2[x]?hd2[x]:cnt2;
ed2[x]=cnt2; poi2[cnt2]=y; ++in2[y];
}
int main(){
scanf("%d%d",&n,&m);
for(int i=,q1,q2;i<=m;++i){
scanf("%d%d",&q1,&q2);
if(q1>q2) swap(q1,q2);
adde(q1,q2); adde2(q2,q1);
}
for(int i=;i<=n;++i) if(!in[i]) h.push(i),f[i]=;
while(!h.empty()){
int x=h.front(); h.pop();
for(int i=hd[x];i;i=nxt[i]){
int to=poi[i];
f[to]+=f[x]; --in[to];
if(in[to]==) h.push(to);
}
}//以上正向图,以下反向图
h.push(n),f2[n]=;
while(!h.empty()){
int x=h.front(); h.pop();
for(int i=hd2[x];i;i=nxt2[i]){
int to=poi2[i];
f2[to]+=f2[x]; --in2[to];
if(in2[to]==) h.push(to);
}
}
for(int i=;i<=n;++i)
for(int j=hd[i];j;j=nxt[j])
ans=max(ans,f[i]*f2[poi[j]]);//枚举边数
printf("%d",ans);
return ;
}

bzoj1638 / P2883 [USACO07MAR]牛交通Cow Traffic的更多相关文章

  1. 拓扑排序/DP【洛谷P2883】 [USACO07MAR]牛交通Cow Traffic

    P2883 [USACO07MAR]牛交通Cow Traffic 随着牛的数量增加,农场的道路的拥挤现象十分严重,特别是在每天晚上的挤奶时间.为了解决这个问题,FJ决定研究这个问题,以能找到导致拥堵现 ...

  2. BZOJ1638: [Usaco2007 Mar]Cow Traffic 奶牛交通

    1638: [Usaco2007 Mar]Cow Traffic 奶牛交通 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 571  Solved: 199 ...

  3. 1638: [Usaco2007 Mar]Cow Traffic 奶牛交通

    1638: [Usaco2007 Mar]Cow Traffic 奶牛交通 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 618  Solved: 217 ...

  4. P2877 [USACO07JAN]牛校Cow School(01分数规划+决策单调性分治)

    P2877 [USACO07JAN]牛校Cow School 01分数规划是啥(转) 决策单调性分治,可以解决(不限于)一些你知道要用斜率优化却不会写的问题 怎么证明?可以暴力打表 我们用$ask(l ...

  5. P3014 [USACO11FEB]牛线Cow Line && 康托展开

    康托展开 康托展开为全排列到一个自然数的映射, 空间压缩效率很高. 简单来说, 康托展开就是一个全排列在所有此序列全排列字典序中的第 \(k\) 大, 这个 \(k\) 即是次全排列的康托展开. 康托 ...

  6. bzoj1612 / P2419 [USACO08JAN]牛大赛Cow Contest(Floyd)

    P2419 [USACO08JAN]牛大赛Cow Contest Floyd不仅可以算最短路,还可以处理点之间的关系. 跑一遍Floyd,处理出每个点之间是否有直接或间接的关系. 如果某个点和其他$n ...

  7. 【洛谷】2990:[USACO10OPEN]牛跳房子Cow Hopscotch【单调队列优化DP】

    P2990 [USACO10OPEN]牛跳房子Cow Hopscotch 题目描述 The cows have reverted to their childhood and are playing ...

  8. 洛谷——P2952 [USACO09OPEN]牛线Cow Line

    P2952 [USACO09OPEN]牛线Cow Line 题目描述 Farmer John's N cows (conveniently numbered 1..N) are forming a l ...

  9. P2419 [USACO08JAN]牛大赛Cow Contest

    P2419 [USACO08JAN]牛大赛Cow Contest 题目背景 [Usaco2008 Jan] 题目描述 N (1 ≤ N ≤ 100) cows, conveniently number ...

随机推荐

  1. easyui---基础组件:dialog

    依赖下面两个组件 window linkbutton linbutton组件:就是超链接变成按钮 $(function(){ $("#linkbuttonid").linkbutt ...

  2. poj3662 Telephone Lines【最短路】【二分】

    http://poj.org/problem?id=3662 Telephone Lines Time Limit: 1000MS   Memory Limit: 65536K Total Submi ...

  3. ECNU 3247 - 铁路修复计划

    Time limit per test: 2.0 seconds Time limit all tests: 15.0 seconds Memory limit: 256 megabytes 在 A ...

  4. mac 10.12显示隐藏文件

    macOS Sierra 10.12版本 显示隐藏文件   1.显示隐藏文件 打开Terminal 输入:defaults write com.apple.finder AppleShowAllFil ...

  5. 【F12】Console命令,让js调试更简单

    Console命令,让js调试更简单 一.显示信息的命令 console.log("normal"); // 用于输出普通信息 console.info("informa ...

  6. Python学习方法(待补充)

    一.好思想总结: 1.一个东西,正在学会了,是需要能简单教会别人,才是真正的理解透彻了,要是讲不透彻,还是一知半解. 2.思路别人教不了你,学会简单处理任何问题,再复杂的东西,在我看来现实项目中,很多 ...

  7. css3写等腰三角形

    <style>            .test {                width: 0;                height: 0;                b ...

  8. csrf攻击原理及如何防止csrf攻击

    CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,是一种对网站的恶意利用,通过伪装来自受信任用 ...

  9. linux上mysql安装详细教程

    所有平台的MySQL下载地址为: MySQL 下载. 挑选你需要的 MySQL Community Server 版本及对应的平台. MySQL - MySQL服务器.你需要该选项,除非你只想连接运行 ...

  10. Git Gui 查看分支历史的时候中文显示乱码

    如图所示 解决方案1 在Git Gui工具栏上选择-编辑-选项: 选择:Default File Contents Encoding, change为UTF-8 成功: 解决方案2  C:\Users ...