zoukankan      html  css  js  c++  java
  • 「TJOI2015」线性代数 解题报告

    「TJOI2015」线性代数

    和牛客某题很像

    在和里面有(B_{i,j})要求是(A_i,A_j)都为(1),和里面减去(C_i)要求(A_i)(1),然后先把贡献也就是(B_{i,j})加上,然后建图跑最小割,建图方法和牛客那题一样

    另外1e6条边为什么也可以跑过去啊,还很快..


    Code:

    #include <cstdio>
    #include <cctype>
    #include <cstring>
    const int N=510;
    const int M=1002000;
    int min(int x,int y){return x<y?x:y;}
    template <class T>
    void read(T &x)
    {
    	x=0;char c=getchar();
    	while(!isdigit(c)) c=getchar();
    	while(isdigit(c)) x=x*10+c-'0',c=getchar();
    }
    int head[N],to[M],Next[M],edge[M],cnt=1;
    void add(int u,int v,int w)
    {
    	to[++cnt]=v,edge[cnt]=w,Next[cnt]=head[u],head[u]=cnt;
    	to[++cnt]=u,edge[cnt]=0,Next[cnt]=head[v],head[v]=cnt;
    }
    int q[N],l,r,dep[N],s,t,A[N];
    bool bfs()
    {
    	memset(dep,0,sizeof dep);
    	dep[q[l=r=1]=s]=1;
    	while(l<=r)
    	{
    		int now=q[l++];
    		for(int v,i=head[now];i;i=Next[i])
    			if(edge[i]&&!dep[v=to[i]])
    			{
    				dep[v]=dep[now]+1;
    				if((q[++r]=v)==t) return true;
    			}
    	}
    	return false;
    }
    const int inf=0x3f3f3f3f;
    int dfs(int now,int flow)
    {
    	if(now==t) return flow;
    	int res=flow,yuu;
    	for(int v,i=head[now];i&&res;i=Next[i])
    		if(edge[i]&&dep[v=to[i]]==dep[now]+1)
    		{
    			yuu=dfs(v,min(res,edge[i]));
    			if(!yuu){dep[v]=0;continue;}
    			edge[i]-=yuu,edge[i^1]+=yuu;
    			res-=yuu;
    		}
    	return flow-res;
    }
    int main()
    {
    	int ans=0,n;
    	read(n);
    	s=n+1,t=s+1;
    	for(int a,i=1;i<=n;i++)
    		for(int j=1;j<=n;j++)
    		{
    			read(a);
    			A[i]+=a;
    			ans+=a;
    			if(i!=j) add(j,i,a);
    		}
    	for(int a,i=1;i<=n;i++)
    	{
    		read(a);
    		add(s,i,A[i]);
    		add(i,t,a);
    	}
    	int flow;
    	while(bfs()) while(flow=dfs(s,inf)) ans-=flow;
    	printf("%d
    ",ans);
    	return 0;
    }
    

    2019.2.24

  • 相关阅读:
    Docker 第一章 安装测试
    时区
    操作系统层虚拟化
    KVM
    基于秘钥的登录认证
    Hypervisor
    通过域名区分不同网站服务
    硬件虚拟化
    虚拟化初识
    nginx rewrite (转发)
  • 原文地址:https://www.cnblogs.com/butterflydew/p/10426640.html
Copyright © 2011-2022 走看看