CF237A Free Cash 题解
Content
给出 \(n\) 个二元组 \((x,y)\),求出现得最多的 \((x,y)\) 出现的次数,保证 \((x,y)\) 从小到大给出。
数据范围:\(1\leqslant n\leqslant 10^5,1\leqslant x\leqslant23,1\leqslant y\leqslant 59\)。
Solution
这道题目其实直接按照原英文题面翻译的话是这样的:有一家 \(24\) 小时营业的咖啡店,一天一共进来了 \(n\) 个客人,已知第 \(i\) 个客人进来的时间是 \(x_i\) 时 \(y_i\) 分,求进来的客人最多的时间。
其实这道题目如果没有保证(x,y)从小到大给出这个条件的话其实也可做的,就开个 \(vis\) 数组,记录\((x,y)\)出现的次数,那么答案就是 \(max\{vis_{x_i,y_i}\}(i\in[1,n])\)。
Code
#include <cstdio>
#include <algorithm>
using namespace std;
int n, x, y, ans, vis[27][67];
int main() {
scanf("%d", &n);
for(int i = 1; i <= n; ++i) {
scanf("%d%d", &x, &y);
vis[x][y]++;
ans = max(ans, vis[x][y]);
}
printf("%d", ans);
}

浙公网安备 33010602011771号