社区讨论

#6 TLE求助!!

B3738[信息与未来 2018] 素数方阵参与者 2已保存回复 1

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@m3a5bdnw
此快照首次捕获于
2024/11/09 20:32
去年
此快照最后确认于
2025/11/04 15:01
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int n,x,y,xx=1,yy=1,cnt=0;
int a[31][31];
bool b[31][31];
vector<int>prime;
inline bool is_p(int x)
{
	for(int i=2;i*i<=x;i++)
	{
		if(x%i == 0)
		return 0;
	}
	return 1;
}
int main()
{
	cin>>n>>x>>y;
	int cont=0,i=2;
	while(cont<=n*n)
	{
		if(is_p(i)){prime.push_back(i);++cont;}
		++i;
	}
	while(!(b[xx+1][yy] && b[xx-1][yy] && b[xx][yy-1] && b[xx][yy+1]))
	{		
		while(!b[xx][yy] && yy<=n)
		{
			b[xx][yy]=1;
			a[xx][yy]=prime[cnt++];
			++yy;
		}
		--yy;
		++xx;
		while(!b[xx][yy] && xx<=n)
		{
			b[xx][yy]=1;
			a[xx][yy]=prime[cnt++];
			++xx; 
		}
		--xx;
		--yy;		
		while(!b[xx][yy] && yy>=1){
			
			b[xx][yy]=1;
			a[xx][yy]=prime[cnt++];
			--yy;
		} 
		++yy;
		--xx;
		while(!b[xx][yy] && xx>=1)
		{
			b[xx][yy]=1;
			a[xx][yy]=prime[cnt++];
			--xx;
		}
		++xx;
		++yy;
	}
	a[xx][yy]=prime[cnt];
	cout<<a[x][y];
    return 0;
}

回复

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

正在加载回复...