QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#525157#7737. Extending DistanceliqingyangCompile Error//C++172.0kb2024-08-20 13:44:002024-08-20 13:44:01

Judging History

你现在查看的是最新测评结果

  • [2024-08-20 13:44:01]
  • 评测
  • [2024-08-20 13:44:00]
  • 提交

answer

#include<iostream>
#include"atcoder/mincostflow"
using namespace std;
using namespace atcoder;
int T,n,m,k,a[510][510],b[510][510];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>T;
	while(T--)
	{
		cin>>n>>m>>k;
		mcf_graph<long long,int> g((n-1)*(m-1)+2);
		int S=(n-1)*(m-1),T=S+1;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<m;j++)
			{
				cin>>a[i][j];
				if(i==1)
				{
					g.add_edge(S,j-1,a[i][j],0);
					continue;
				}
				if(i==n)
				{
					g.add_edge((n-2)*(m-1)+j-1,T,a[i][j],0);
					continue;
				}
				g.add_edge((i-2)*(m-1)+j-1,(i-1)*(m-1)+j-1,a[i][j],0);
				g.add_edge((i-1)*(m-1)+j-1,(i-2)*(m-1)+j-1,a[i][j],0);
			}
		}
		for(int i=1;i<n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				cin>>b[i][j];
				if(j==1||j==m)
				{
					continue;
				}
				g.add_edge((i-1)*(m-1)+j-2,(i-1)*(m-1)+j-1,b[i][j],0);
				g.add_edge((i-1)*(m-1)+j-1,(i-1)*(m-1)+j-2,b[i][j],0);
			}
		}
		g.flow(S,T);
		int now=g.edges().size();
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<m;j++)
			{
				if(i==1)
				{
					g.add_edge(S,j-1,k,1);
					continue;
				}
				if(i==n)
				{
					g.add_edge((n-2)*(m-1)+j-1,T,k,1);
					continue;
				}
				g.add_edge((i-2)*(m-1)+j-1,(i-1)*(m-1)+j-1,k,1);
				g.add_edge((i-1)*(m-1)+j-1,(i-2)*(m-1)+j-1,k,1);
			}
		}
		for(int i=1;i<n;i++)
		{
			for(int j=2;j<m;j++)
			{
				g.add_edge((i-1)*(m-1)+j-2,(i-1)*(m-1)+j-1,k,1);
				g.add_edge((i-1)*(m-1)+j-1,(i-1)*(m-1)+j-2,k,1);
			}
		}
		cout<<g.flow(S,T,k).second<<endl;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<m;j++)
			{
				if(i==1||i==n)
				{
					cout<<a[i][j]+g.get_edge(now++).flow<<" ";
					continue;
				}
				cout<<a[i][j]+g.get_edge(now++).flow
				+g.get_edge(now++).flow<<" ";
			}
			cout<<endl;
		}
		for(int i=1;i<n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				if(j==1||j==m)
				{
					cout<<b[i][j]<<" ";
					continue;
				}
				cout<<b[i][j]+g.get_edge(now++).flow
				+g.get_edge(now++).flow<<" ";
			}
			cout<<endl;
		}
	}
	return 0;
}

Details

answer.code:2:9: fatal error: atcoder/mincostflow: No such file or directory
    2 | #include"atcoder/mincostflow"
      |         ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.