UVa 10895 Matrix Transpose

来源:互联网 发布:淘宝刷心悦会封号吗 编辑:程序博客网 时间:2024/05/22 17:22
#include <iostream>#include <cstdio>#include <cstring>#include <vector>using namespace std;int a[10010];int b[10010][10010];int main(){   // freopen("in.txt","r",stdin);    int m,n;    int num;    while(~scanf("%d%d",&m,&n)){        vector<int>cnt[n];        vector<int>ans[n];        int maxn = max(m,n);        memset(b,0,sizeof(b));        for(int i=0;i<m;++i){            scanf("%d",&num);            if(num==0)continue;            for(int j=0;j<num;++j)scanf("%d",&a[j]);            for(int j=0;j<num;++j)scanf("%d",&b[i][a[j]-1]); //注意矩阵的下标        }        for(int j=0;j<n;++j){            cnt[j].clear();            ans[j].clear();            for(int i=0;i<m;++i){                if(b[i][j]!=0){                    cnt[j].push_back(i+1);                    int crt = b[i][j];                    ans[j].push_back(crt);                }            }        }        printf("%d %d\n",n,m);        for(int i=0;i<n;++i){            int len = ans[i].size();            if(cnt[i].size()==0){printf("0\n\n");continue;}            printf("%d",cnt[i].size());            for(int j=0;j<len;++j){                j== len-1 ? printf(" %d\n",cnt[i][j]) : printf(" %d",cnt[i][j]);            }            for(int j=0;j<len;++j){                j== len-1 ? printf("%d\n",ans[i][j]) : printf("%d ",ans[i][j]);            }        }    }    return 0;}

0 0
原创粉丝点击