首页 > 其他 > 详细

codeforces思维题专练

时间:2020-11-17 22:17:25      阅读:54      评论:0      收藏:0      [点我收藏+]

Technocup 2021 - Elimination Round 1 A New Technique

#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
#define rep(i,a,n) for(int i=0;i<n;i++)//repeat 默认升序
#define per(i,a,n) for(int i=n;i>=0;i--)//per 对rep的颠倒,默认降序
#define pb push_back
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
/*
已知每行的相关顺序,
但不知道行的层次,通过列来找到行的层次
因为每一行的第一个元素就决定了该行剩余元素的排列,
所以确定每一行第一个元素的层次也就是,该行在第几行就行了
*/
typedef long long ll;
const int N=510;
int a[N][N],b[N][N];

int main()
{
    IOS;
    int t;cin>>t;
    while(t--)
    {
        int n,m;cin>>n>>m;
        rep(i,0,n)
            rep(j,0,m)
                cin>>a[i][j];
        rep(i,0,m)
            rep(j,0,n)  
                cin>>b[i][j];
        vector<int>ans;
        rep(i,0,n)
        {
            bool flag=false;
            rep(j,0,n)
            {
                rep(k,0,m)
                {
                    if(b[0][i]==a[j][k])
                    {
                        ans.pb(j);
                        flag=1;
                        break;
                    }
                }
                if(flag)
                    break;
            }
        }
        rep(i,0,n)
        {
            rep(j,0,m)
                cout<<a[ans[i]][j]<<" ";
            cout<<endl;
        }
    }
    return 0;
}

codeforces思维题专练

原文:https://www.cnblogs.com/forward-985/p/13996676.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!