poj1698 Alice’s Chance(最大流)

来源:互联网 发布:2017年新疆网络管制 编辑:程序博客网 时间:2024/06/15 10:05

每一天一个点。

#include <cstdio>#include <cstring>#include <algorithm>#include <queue>using namespace std;#define ll long long#define inf 0x3f3f3f3f#define N 400inline int read(){    int x=0,f=1;char ch=getchar();    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}    while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();    return x*f;}int n,h[N],num=1,T=380,lev[N],tot=0,num1=0,cur[N];bool ok[10];struct edge{    int to,next,val;}data[20000];inline void add(int x,int y,int val){    data[++num].to=y;data[num].next=h[x];h[x]=num;data[num].val=val;    data[++num].to=x;data[num].next=h[y];h[y]=num;data[num].val=0;}inline bool bfs(){    queue<int>q;memset(lev,0,sizeof(lev));    lev[0]=1;q.push(0);    while(!q.empty()){        int x=q.front();q.pop();        for(int i=h[x];i;i=data[i].next){            int y=data[i].to;if(lev[y]||!data[i].val) continue;            lev[y]=lev[x]+1;q.push(y);        }    }return lev[T];}inline int dinic(int x,int low){    if(x==T) return low;int tmp=low;    for(int &i=cur[x];i;i=data[i].next){        int y=data[i].to;if(lev[y]!=lev[x]+1||!data[i].val) continue;        int res=dinic(y,min(tmp,data[i].val));        if(!res) lev[y]=0;else tmp-=res,data[i].val-=res,data[i^1].val+=res;        if(!tmp) return low;    }return low-tmp;}int main(){//  freopen("a.in","r",stdin);    int tst=read();    while(tst--){        n=read();memset(h,0,sizeof(h));num=1;tot=0;int nn=0,ans=0;        for(int i=1;i<=n;++i){            for(int j=1;j<=7;++j) ok[j]=read();            int d=read(),x=read();tot+=d;nn=max(nn,x);add(i,T,d);            for(int j=1;j<=7;++j){                if(!ok[j]) continue;                for(int k=0;k<x;++k) add(n+k*7+j,i,1);            }        }nn*=7;for(int i=1;i<=nn;++i) add(0,n+i,1);        while(bfs()){memcpy(cur,h,sizeof(cur));ans+=dinic(0,inf);}        if(ans==tot) puts("Yes");        else puts("No");    }return 0;}
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 民航飞行员 民航资源 民航 民航论坛 民航局 天津民航 民航招聘 民航总医院 民航社区 民航网 民航体检 民航时速 民航医院 民航机长 民航学院 大学民航 民航招聘网 民航货运 民航报考 民航学校 民航机场 民航报名 民航管理 民航招生 上海民航 民航在线 民航专业 民航运输 中国民航飞行学院 广州民航职业技术学院 民航飞行学院 广州民航技术学院 广州民航学院 民航体检合格证管理系统 四川民航机长刘传健 中国民航飞行学院地址 上海民航职业技术学院 中国民航大学211 四川民航事件 民航飞行员私生活很乱吗 民航飞行员报考条件