求调,可关注。按照题解的思路写的
查看原帖
求调,可关注。按照题解的思路写的
1271674
san_ming楼主2024/12/6 18:31

如题,我的提交记录

https://www.luogu.com.cn/record/193111560

#include<bits/stdc++.h>//By san_ming
#define int long long
#define AC return 0
#define fin freopen("1.in","r",stdin)
#define fout freopen("1.txt","w",stdout)
using namespace std;

signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
	int n,m,a[10010][10]={0};
	cin>>n>>m;
	int num=6*n;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=6;j++)
		{
			char c;
			cin>>c;
			if(c=='X')
			{
				a[i][j]=1;
				num--;
			}
		}
	}
	
	if(num<m)
	{
		cout<<"Impossible";
		AC;
	}
	
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(a[i][j]!=a[i][6-j+1]&&m-1>=0)
			{
				if(a[i][j]==0)
					a[i][j]=1;
				else 
					a[i][6-j+1]=1;
				m--;
				
			}
		}
	}
	
	if(m<0||m%2!=0)
	{
		cout<<"Impossible";
		AC;
	}
	
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=6;j++)
		{
			if(a[i][j]==a[i][6-j+1]&&a[i][j]==0&&m-1>=0)
			{
				a[i][j]=1;
				a[i][6-j+1]=1;
				m-=2;
			}
			if(m<=0)
				break;
		}
	}
	
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=6;j++)
		{
			if(a[i][j]==1)
				cout<<"X";
			else
				cout<<".";
		}
		cout<<endl;
	}

	
    AC;
}



2024/12/6 18:31
加载中...