传送门

分析

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<ctime>
#include<vector>
#include<set>
#include<map>
#include<stack>
using namespace std;
#define wh ((i&1)?1:-1)
const int inf = 1e9+;
int g[][],s,t,n,to[],head[],w[],nxt[];
int level[],cur[],cnt,ano[];
inline void init(){
memset(head,,sizeof(head));
cnt=;
}
inline void add(int x,int y,int z){
nxt[++cnt]=head[x];
head[x]=cnt;
to[cnt]=y;
w[cnt]=z;
nxt[++cnt]=head[y];
head[y]=cnt;
to[cnt]=x;
w[cnt]=z;
ano[cnt]=cnt-;
ano[cnt-]=cnt;
}
inline void deal(){
int i,j,k;
for(i=;i<n;i++)
for(j=i+;j<=n;j++)
if(g[i][j]==)add(i,j,);
else if(g[i][j]==)add(i,j,inf);
}
inline bool bfs(){
memset(level,-,sizeof(level));
queue<int>q;
q.push(s);
level[s]=;
while(!q.empty()){
int x=q.front();
q.pop();
for(int i=head[x];i;i=nxt[i])
if(w[i]&&level[to[i]]==-){
level[to[i]]=level[x]+;
if(to[i]==t)return ;
q.push(to[i]);
}
}
return ;
}
inline int dfs(int x,int flow){
if(x==t)return flow;
int res=;
cur[x]=head[x];
for(int i=cur[x];i;i=nxt[i]){
cur[x]=i;
int y=to[i];
if(level[y]==level[x]+&&w[i]){
int f=dfs(y,min(flow-res,w[i]));
res+=f;
w[i]-=f;
w[ano[i]]+=f;
}
}
if(!res)level[x]=-;
return res;
}
int main(){
int a1,a2,b1,b2,an,bn,i,j,k,Ans1,Ans2;
while(~scanf("%d",&n)){
scanf("%d%d%d%d%d%d",&a1,&a2,&an,&b1,&b2,&bn);
a1++,a2++,b1++,b2++;
for(i=;i<=n;i++){
char s[];
scanf("%s",s);
for(j=;j<n;j++){
if(s[j]=='O')g[i][j+]=;
else if(s[j]=='N')g[i][j+]=;
else g[i][j+]=;
}
}
init();
Ans1=;
deal();
s=n+,t=n+;
add(s,a1,an<<),add(s,b1,bn<<);
add(a2,t,an<<),add(b2,t,bn<<);
while(bfs())while(int a=dfs(s,inf))Ans1+=a;
init();
Ans2=;
deal();
s=n+,t=n+;
add(s,a1,an<<),add(s,b2,bn<<);
add(a2,t,an<<),add(b1,t,bn<<);
while(bfs())while(int a=dfs(s,inf))Ans2+=a;
if(Ans1!=(an<<)+(bn<<)||Ans2!=(an<<)+(bn<<))puts("No");
else puts("Yes");
}
return ;
}

p3163 [CQOI2014]危桥的更多相关文章

  1. BZOJ 3504: [Cqoi2014]危桥 [最大流]

    3504: [Cqoi2014]危桥 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1407  Solved: 703[Submit][Status] ...

  2. Luogu3163 [CQOI2014]危桥 ---- 网络流 及 一个细节的解释

    Luogu3163 [CQOI2014]危桥 题意 有$n$个点和$m$条边,有些边可以无限次数的走,有些边这辈子只能走两次,给定两个起点和终点$a_1 --> a_2$(起点 --> 终 ...

  3. 3504: [Cqoi2014]危桥

    3504: [Cqoi2014]危桥 链接 分析: 首先往返的可以转化为全是“往”,那么只要将容量除以2即可. 然后S向a1连边容量为an(除以2之前为2*an),S向a2连边容量为an,b1,b2向 ...

  4. bzoj千题计划137:bzoj [CQOI2014]危桥

    http://www.lydsy.com/JudgeOnline/problem.php?id=3504 往返n遍,即单向2*n遍 危桥流量为2,普通桥流量为inf 原图跑一遍最大流 交换b1,b2再 ...

  5. AC日记——[CQOI2014]危桥 洛谷 P3163

    题目描述 Alice和Bob居住在一个由N座岛屿组成的国家,岛屿被编号为0到N-1.某些岛屿之间有桥相连,桥上的道路是双向的,但一次只能供一人通行.其中一些桥由于年久失修成为危桥,最多只能通行两次.A ...

  6. 【BZOJ 3504】[Cqoi2014]危桥

    Description Alice和Bob居住在一个由N座岛屿组成的国家,岛屿被编号为0到N-1.某些岛屿之间有桥相连,桥上的道路是双 向的,但一次只能供一人通行.其中一些桥由于年久失修成为危桥,最多 ...

  7. [CQOI2014]危桥

    题目描述 Alice和Bob居住在一个由N座岛屿组成的国家,岛屿被编号为0到N-1.某些岛屿之间有桥相连,桥上的道路是双 向的,但一次只能供一人通行.其中一些桥由于年久失修成为危桥,最多只能通行两次. ...

  8. BZOJ.3504.[CQOI2014]危桥(最大流ISAP)

    BZOJ 洛谷 这种题大多是多源多汇跑网络流.往返\(a_n/b_n\)次可以看做去\(a_n/b_n\)次,直接把危桥能走的次数看做\(1\). 先不考虑别的,直接按原图建模:危桥建双向边容量为\( ...

  9. BZOJ3504 CQOI2014危桥(最大流)

    如果只有一个人的话很容易想到最大流,正常桥连限流inf双向边,危桥连限流2双向边即可.现在有两个人,容易想到给两起点建超源两汇点建超汇,但这样没法保证两个人各自到达自己要去的目的地.于是再超源连一个人 ...

随机推荐

  1. linux 处理端口

    1.查看8080端口是否被占用: netstat -anp | grep 8080 2.查看占用8080端口的进程:fuser -v -n tcp 8080 3.杀死占用8080端口的进程: kill ...

  2. Mac 下 Mosquitto 安装和配置 (Mosquitto为开源的mqtt服务器)

    官网:http://mosquitto.org/download/ 官网的介绍简单明了 Mac 下一个命令“brew install mosquitto” 安装成功了,还学会了brew 安装目录:/u ...

  3. MySQL+Node.js连接和操作

    在本节中,您将学习如何使用mysql模块从node.js应用程序与MySQL进行交互. 我们将向您展示如何使用Node.js连接到MySQL,执行常用操作,如使用mysql模块API执行插入,选择,更 ...

  4. spring MVC HandlerInterceptorAdapter

    SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那 ...

  5. java关键字---final和transient

    首先,说说final. final关键字可以修饰变量,方法,类.    final变量:         需求:             1 需要一个永不改变的编译时常量             2 ...

  6. CCControlSwitch 、CCControlSlider、CCControlButton

    /* *bool hasMoved(); 这里获取的不是开关是否正在被用户拨动,而是开关最终的状态是由用户手动拨动开关进行的, *还是用户点击开关进行的状态更改 */ CCControlSwitch* ...

  7. bzoj1249: SGU277 HERO 动态凸包

    动态维护凸包面积. //Achen #include<bits/stdc++.h> #define For(i,a,b) for(int i=(a);i<=(b);i++) #def ...

  8. php写入数据到mysql数据库中出现乱码解决方法

    乱码情况: 在选择数据库前加入一句代码即可 mysql_query("set names utf8"); 最后效果

  9. mybatis与oracle使用总结

    Oracle使用总结 1.新建表删除表 新建表语句: CREATE TABLE +表名{ } create table AFA_USER ( USER_ID VARCHAR2() not null, ...

  10. Mybatis-Spring包学习

    MyBatis-Spring包用来将MyBatis无缝整合到Spring中.使用这个类库中的类, Spring将会加载必要的MyBatis工厂类和Session类. 这个类库也提供一个简单的方式来注入 ...