超时求改
查看原帖
超时求改
1329138
luogu_hezhenmin1楼主2024/10/1 12:34
#include<bits/stdc++.h>
using namespace std;
int n,m,k,cnt,a[102],mp[102][102];
bool ha[102];
int dx[3]={0,1,0},dy[3]={0,0,1};
void dfs(int s,int x,int y){
	if(x==n and y==m){
		if(!ha[s]){
			cnt++;
			a[cnt]=s;
			ha[s]=1;
		}
		return;
	}
	for(int i=1;i<=2;i++){
		int nx=x+dx[i],ny=y+dy[i];
		if(nx>n or ny>m) continue;
		else dfs((s*mp[nx][ny])%k,nx,ny);
	}
}
int main(){
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			cin>>mp[i][j];
	dfs(mp[1][1]%k,1,1);
	cout<<cnt<<endl;
	sort(a+1,a+cnt+1);
	for(int i=1;i<=cnt;i++)
		cout<<a[i]<<" ";
	return 0;
}
2024/10/1 12:34
加载中...