社区讨论

听灌多dalao,求调

灌水区参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@m2g4qiu3
此快照首次捕获于
2024/10/19 20:23
去年
此快照最后确认于
2025/11/04 16:47
4 个月前
查看原帖
RT,P9752,30pts
C
#include<bits/stdc++.h>
using namespace std;
int n,a[10][6],q[100005][6],h[100005][6],p,c,s;
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=5;j++)
        {
			cin>>a[i][j];
	 	}
	}
	if(n==1)
    {
        cout<<"81";
        return 0;
    }
	for(int i=0;i<=9;i++)
    {
        for(int j=0;j<=9;j++)
        {
            for(int k=0;k<=9;k++)
            {
                for(int l=0;l<=9;l++)
                {
                    for(int m=0;m<=9;m++)
                    {
                        p++;
                        q[p][1]=i;
                        q[p][2]=j;
                        q[p][3]=k;
                        q[p][4]=l;
                        q[p][5]=m;
                    }
                }
            }
        }
    }
	for(int i=1;i<=n;i++)
    {
		for(int j=1;j<=5;j++)
		{
		    bool flag=0;
            if(a[i][j]==9)
            {
                if(q[i][j]==0||q[i][j]==8)
                {
                    for(int k=2;k<=5;k++)
                    {
                        if(q[i][k]!=a[i][k])flag=1;
                    }
                }
                else flag=1;
            }
            else if(a[i][j]==0)
            {
                if(q[i][j]==1||q[i][j]==9)
                {
                    for(int k=2;k<=5;k++)
                    {
                        if(q[i][k]!=a[i][k])flag=1;
                    }
                }
                else flag=1;
            }
            else if(q[i][j]==a[i][j]+1||q[i][j]==a[i][j]-1)
            {
                for(int k=2;k<=5;k++)
                {
                    if(q[i][k]!=a[i][k])flag=1;
                }
            }
            for(int k=1;k<=c;k++)
            {
                for(int l=1;l<=5;l++)
                {
                    if(q[i][l]==a[k][l])flag=1;
                }
            }
            if(flag==0)
            {
                s++;
                c++;
                int v=0;
                h[c][v++]=q[i][v];
                h[c][v++]=q[i][v];
                h[c][v++]=q[i][v];
                h[c][v++]=q[i][v];
                h[c][v++]=q[i][v];
            }
		}
	}
	c=0;
	for(int i=1;i<=n;i++)
    {
		for(int j=1;j<=4;j++)
		{
		    int k=j+1;
		    bool flag=0;
            if(a[i][j]==9&&a[i][k]==9)
            {
                if((q[i][j]==0||q[i][j]==8)&&(q[i][k]==0||q[i][k]==8))
                {
                    for(int l=3;l<=5;l++)
                    {
                        if(q[i][l]!=a[i][l])flag=1;
                    }
                }
                else flag=1;
            }
            else if(a[i][j]==0&&a[i][k]==0)
            {
                if((q[i][j]==1||q[i][j]==9)&&(q[i][k]==1||q[i][k]==9))
                {
                    for(int l=3;l<=5;l++)
                    {
                        if(q[i][l]!=a[i][l])flag=1;
                    }
                }
                else flag=1;
            }
            else if((q[i][j]==a[i][j]+1||q[i][j]==a[i][j]-1)&&(q[i][k]==a[i][k]+1||q[i][k]==a[i][k]-1))
            {
                for(int l=3;l<=5;l++)
                {
                    if(q[i][l]!=a[i][l])flag=1;
                }
            }
            for(int l=1;l<=c;l++)
            {
                for(int m=1;m<=5;m++)
                {
                    if(q[i][m]==a[l][m])flag=1;
                }
            }
            if(flag==0)
            {
                s++;
                c++;
                int v=0;
                h[c][v++]=q[i][v];
                h[c][v++]=q[i][v];
                h[c][v++]=q[i][v];
                h[c][v++]=q[i][v];
                h[c][v++]=q[i][v];
            }
		}
	}
	cout<<s;
	return 0;
}
悬棺

回复

2 条回复,欢迎继续交流。

正在加载回复...