题目描述
题解
一眼网络流啊。。。
对于所有的J,s->i,1
对于所有的T,i->t,1
将J和E再拆两个点xi,yi,连边xi->yi,1
对于每一个J能移动到的位置(J或E),连边i->xj,1
对于每一个位置(J或E)能攻击到的T,连边yi->j,1
跑最大流即可
即用流来模拟了攻击的过程
代码
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue>
using namespace std;
#define N 160000
#define inf 2100000000
int n,m,s,t,maxflow;bool e[1005][1005];
char str[N];
int tot,point[N],nxt[N],v[N],remain[N];
int deep[N],last[N],cur[N],num[N];
queue <int> q;
void addedge(int