欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【计蒜客】2018ICPC徐州赛区网络赛F Features Track(map的使用)

程序员文章站 2022-06-04 12:06:12
...

题目链接

【计蒜客】2018ICPC徐州赛区网络赛F Features Track(map的使用)

【计蒜客】2018ICPC徐州赛区网络赛F Features Track(map的使用)

 

【题意】

其实很简单,给n组数据每组数据里有k个点集,求最大连续出现的点的次数。

 

【解题思路】

啊昨天真是状态差到爆……这题居然都没写出来,可能是那道水题写崩了qaq

map里面套个pair表示一个点就好了,然后只要在上一轮没找到的点就记为0,能找到的点说明连续出现,即上一轮的答案再+1,每次再更新最大值即可。

 

【代码】

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
map<pair<int,int>,int>m[maxn];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int n,ans=0,k,x,y;
        scanf("%d",&n);
        for(int i=0;i<maxn;i++)
            m[i].clear();
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&k);
            while(k--)
            {
                scanf("%d%d",&x,&y);
                if(!m[i-1].count({x,y}))m[i][{x,y}]=1;
                else m[i][{x,y}]=m[i-1][{x,y}]+1;
                ans=max(ans,m[i][{x,y}]);
            }
        }
        printf("%d\n",ans);
    }
    return 0;
}