RE10pts求调
  • 板块题目总版
  • 楼主UKE_bound
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/1 16:22
  • 上次更新2025/1/1 21:07:01
查看原帖
RE10pts求调
1073741
UKE_bound楼主2025/1/1 16:22

题目

#include<bits/stdc++.h>
using namespace std;
int a[105][105];
bool b[105];
vector<int> f[105][105];
int main(){
    int n,m,k;
    cin>>n>>m>>k;
    for(int i=1;i<=m;i++){
        for(int j=1;j<=n;j++){
            cin>>a[i][j];
        }
    }
    f[1][1].push_back(1);
    for(int i=2;i<=m;i++){
        f[i][1].push_back(f[i-1][1][0]*a[i][1]%k);
    }
    for(int j=2;j<=n;j++){
        f[1][j].push_back(f[1][j-1][0]*a[1][j]%k);
    }
    for(int i=2;i<=m;i++){
        for(int j=2;j<=n;j++){
            for(int l=0;l<f[i][j-1].size();l++){
                f[i][j].push_back(f[i][j-1][l]*a[i][j]%k);
            }
            for(int l=0;l<f[i-1][j].size();l++){
                f[i][j].push_back(f[i-1][j][l]*a[i][j]%k);
            }
        }
    }
    for(int i=0;i<f[m][n].size();i++){
        b[f[m][n][i]]=1;
    }
    int ans=0;
    for(int i=0;i<k;i++){
        if(b[i]){
            ans++;
        }
    }
    cout<<ans<<endl;
    for(int i=0;i<k;i++){
        if(b[i]){
            cout<<i<<" ";
        }
    }
    return 0;
}
2025/1/1 16:22
加载中...