【计蒜客】2018ICPC徐州赛区网络赛F Features Track(map的使用)
程序员文章站
2022-06-04 12:06:12
...
【题意】
其实很简单,给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;
}
上一篇: 禁止F5等快捷键的JS代码
下一篇: 论茶树菇加工方法,怎么做才好吃?