A. Cow Gymnastics

A. Cow Gymnastics

https://codeforces.com/group/5yyKg9gx7m/contest/269717/problem/A

题目描述:

大概意思是,比如下面数据:

4 1 2 3
4 1 3 2
4 2 1 3

 

从左往右看,如果一个数无论在哪一行都在另一个数左边,那么这两个数构成一个组合,问有多少个组合。

分析:

范围比较小,直接暴力。用vector存他所在的位置,比如a[ 2 ] [ 1]表示数字2在第一行的位置。选定2个数,那么对每2行,判断他们位置差是否同号。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
    int k,n;
    cin>>k>>n;
    vector<int> a[n+6];
    for(int i=1;i<=k;i++)
    {
        for(int j=1;j<=n;j++)
        {
            int num;
            cin>>num;
            a[num].push_back(j);
        }
    }
    int ans=0;
    for(int i=1;i<=n;i++)
    {
        for(int j=i+1;j<=n;j++)
        {
            bool con=true;
            for(int p=0;p<k-1;p++)
            {
                if((a[i][p]-a[j][p])*(a[i][p+1]-a[j][p+1])<0)
                {
                    con=false;
                    break;
                }
            }
            if(con) ans++;
        }
    }
    cout<<ans<<endl;
    return 0;
}
 

 

posted on 2020-03-03 22:18  Aminers  阅读(201)  评论(0编辑  收藏  举报

导航